如何执行pl / sql存储过程havaing sys_refcursor作为out参数

时间:2014-02-22 12:59:06

标签: oracle plsql

create or replace procedure get_emp(p_deptno number,emp_det out sys_refcursor)
is
begin
open emp_det for select * from emp where deptno=p_deptno;
end;
/

如何传递sys_refcursor的参数以及如何使用oracle pl / sql中的匿名块打印该结果

1 个答案:

答案 0 :(得分:1)

只需声明一个REFCURSOR变量并将其传递给您的过程

你可以打开

DECLARE
MYCUR SYS_REFCURSOR;
BEGIN
get_emp(123,MYCUR);
FOR I in MYCUR
LOOP
   -- ur statements
END LOOP;
END;
/

也喜欢这样使用SQLPLUS。输出就像你运行一个选择查询一样,用光标发送的内容。

VARIABLE MYCUR REFCURSOR;
EXECUTE get_emp(:MYCUR);

print MYCUR;