现在需求是这样,需要封装一个方法,里面对一个表进行查询,由于结果肯定是多条,所以需要返回一个游标类型
请问前辈,我在定义方法的时候,这个参数类型是不是写 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
...
至于调用,不同的调用环境有不同的方法。