现在需求是这样,需要封装一个方法,里面对一个表进行查询,由于结果肯定是多条,所以需要返回一个游标类型
请问前辈,我在定义方法的时候,这个参数类型是不是写 cursor??
比如
function sel_xxx_by_id(v_cursor OUT cursor)另外在调用的地方应该怎么写?
请问前辈,我在定义方法的时候,这个参数类型是不是写 cursor??
比如
function sel_xxx_by_id(v_cursor OUT cursor)另外在调用的地方应该怎么写?
调试欢乐多
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;
/
参照以上...
过程返回结果集,
procedure proc_name
(...
po_result sys_refcursor)
is
...
至于调用,不同的调用环境有不同的方法。
(...
po_result out sys_refcursor)
is
...
如果是函数的话, 是不是返回值类型也可以 写成 v_cursor OUT sys_refcursor ?
return sys_refcursor
不能返回其他类型,我在调用的地方,声明一个类型的变量,然后扔进去, 也就给他赋值了
所以这个地方有点绕,向我这种情况,这个地方应该怎么写呢?