当前位置: 代码迷 >> Oracle开发 >> 请问 存储过程中,怎么返回一个游标类型?
  详细解决方案

请问 存储过程中,怎么返回一个游标类型?

热度:138   发布时间:2016-04-24 08:02:51.0
请教 存储过程中,如何返回一个游标类型??
现在需求是这样,需要封装一个方法,里面对一个表进行查询,由于结果肯定是多条,所以需要返回一个游标类型
请问前辈,我在定义方法的时候,这个参数类型是不是写 cursor??
比如
function sel_xxx_by_id(v_cursor OUT cursor)

另外在调用的地方应该怎么写?

------解决方案--------------------
SQL code
EMP数据库例子CREATE OR REPLACE PROCEDURE P_RETR_CURSOR(P_ID IN NUMBER,P_RECSET OUT SYS_REFCURSOR) ASBEGINOPEN P_RECSET FORSELECT e.empno,e.enameFROM emp eWHERE empno = P_ID;END;DECLAREI NUMBER;S VARCHAR2(100);M SYS_REFCURSOR;BEGINFOR J IN 7900..7902 LOOPP_RETR_CURSOR(J, M);FETCH MINTO I, S;DBMS_OUTPUT.PUT(I || '-');DBMS_OUTPUT.PUT_LINE(S);CLOSE M;END LOOP;END;/
------解决方案--------------------
function sel_xxx_by_id(v_cursor OUT cursor),这是函数,不是过程。


过程返回结果集,
procedure proc_name
(...
po_result sys_refcursor)
is
...


至于调用,不同的调用环境有不同的方法。

  相关解决方案