以下是一个函数返回一个结果结果集的例子,可以供你参考: create or replace function sql_test (sql_str varchar2) return SYS_REFCURSOR is po_return sys_refcursor; begin open po_return for sql_str; return(po_return); end ; --调用函数declare cur1 SYS_REFCURSOR; v_dual varchar2(100); i number; begin v_dual:='select 1 id from dual union all select 2 from dual'; cur1:=sql_test(v_dual); loop fetch cur1 into i; exit when cur1%notfound; dbms_output.put_line('----------------i :'||i); end loop; close cur1; end;
create or replace function sql_test (sql_str varchar2) return SYS_REFCURSOR is
po_return sys_refcursor;
begin
open po_return for sql_str;
return(po_return);
end ; --调用函数declare
cur1 SYS_REFCURSOR;
v_dual varchar2(100);
i number;
begin
v_dual:='select 1 id from dual union all select 2 from dual';
cur1:=sql_test(v_dual);
loop
fetch cur1 into i;
exit when cur1%notfound;
dbms_output.put_line('----------------i :'||i);
end loop;
close cur1;
end;