0

PL/SQL のプロシージャに引数として sys_refcursor を渡したいです。次のコードを使用してプロシージャを作成しました

create or replace procedure reffunmani(
  cname varchar2,
  mysys out sys_refcursor) 
is
begin   
  open mysys for
    select /*c.ins_id,c.cname, c.start_date,*/i.ins_id,i.ins_name
      from course c,institution i where c.ins_id=i.ins_id 
     order by c.start_date;
end;
/
show errors;

そして、私は同じプロシージャを呼び出しました私は無名ブロックです

declare
  mysys sys_refcursor;
  rec institution%rowtype; 
begin
  reffunmani('MCA',mysys);
  loop
    fetch mysys into rec;
    exit when mysys%notfound;
    dbms_output.put_line(rec.ins_id||'    '||rec.ins_name);
  end loop;
  close mysys;
end;
/

匿名ブロックを実行すると、エラーが発生します

ORA-06504: PL/SQL: Return types of Result Set variables or query do not match 
ORA-06512: at line 7

institutionテーブルには 5 つの列があることに注意してください。

4

1 に答える 1