我需要验证具有out游标参数的过程。具体来说,我需要查看检索内容。
我试试这个:
declare
type cursor_out is ref cursor;
cur cursor_out;
fila activ_economica%rowtype;
procedure test(algo out cursor_out) is
begin
open algo for select * from activ_economica;
end;
begin
test(cur);
for i in cur loop
fila := i;
dbms_output.put(fila.id_activ_economica ||' ' );
dbms_output.put_line(fila.nom_activ_economica);
end loop;
end;
错误是“cur”尚未定义。
答案 0 :(得分:2)
您不能将游标FOR循环与ref游标一起使用,您必须这样做:
declare
type cursor_out is ref cursor;
cur cursor_out;
fila activ_economica%rowtype;
procedure test(algo out cursor_out) is
begin
open algo for select * from activ_economica;
end;
begin
test(cur);
loop
fetch cur into fila;
exit when cur%notfound;
dbms_output.put(fila.id_activ_economica ||' ' );
dbms_output.put_line(fila.nom_activ_economica);
end loop;
close cur;
end;
注意:不再需要定义自己的引用游标类型(除非您使用的是旧版本的Oracle)。您只需使用SYS_REFCURSOR:
declare
cur sys_refcursor;
...