日期:2014-05-17 浏览次数:20743 次
EMP数据库例子 CREATE OR REPLACE PROCEDURE P_RETR_CURSOR (P_ID IN NUMBER, P_RECSET OUT SYS_REFCURSOR) AS BEGIN OPEN P_RECSET FOR SELECT e.empno,e.ename FROM emp e WHERE empno = P_ID; END; DECLARE I NUMBER; S VARCHAR2(100); M SYS_REFCURSOR; BEGIN FOR J IN 7900..7902 LOOP P_RETR_CURSOR(J, M); FETCH M INTO 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
...
至于调用,不同的调用环境有不同的方法。