第一张表KQXM             KQID      KQIDB KQSJ                 KQTS
---------- ---------- ---------- -------------- ----------
张三                1          1 01-6月 -09              1
李四                2          2 01-6月 -09              1
王五                3          3 01-6月 -09              1
黄六                1          4 01-6月 -09              1
张三                3          5 02-6月 -09              1
李四                4          6 02-6月 -09              1
王五                1          7 02-6月 -09              1
黄六                3          8 02-6月 -09              1
张三                3          9 03-6月 -09              1
李四                2         10 03-6月 -09              1
王五                1         11 03-6月 -09              1第二张表
     KQID KQNR            KQIDA
--------- ---------- ----------
        4 出差                4
        1 签到                1
        2 事假                2
        3 病假                3包头:
create or replace package kqpack is
  type rest is ref cursor;
  procedure zjm(str out rest);
end kqpack;包体:
╃ヤ﹎ 薍ゞ(406202818)  10:23:35
create or replace package body kqpack is
procedure zjm(str out rest)
is
v_sql  varchar2(2000);
v_kqnr kqnr.kqnr%type;
cursor mycur is select kqnr from kqnr;
begin
v_sql:= 'select a.kqxm 姓名';
open mycur;
fetch mycur into v_kqnr;
while mycur %found loop
v_sql := v_sql ||',sum(decode(b.kqnr,'''||v_kqnr||''',a.kqts)) as ' || v_kqnr;
fetch mycur into v_kqnr;
end loop;
v_sql :=v_sql ||' from kqgl a,kqnr b where a.kqid=b.kqid group by a.kqxm ';
dbms_output.put_line(v_sql);
open str for v_sql;
end;
end;为什么运行的时候要用
var r refcursor;
execute kqpack.zjm(:c);
print r;
其中的 refcursor是什么意思?