SYS_REFCURSOR系统游标的使用
http://blog.itpub.net/26736162/viewspace-2131977/
1.1 函数返回系统游标
CREATE OR REPLACE FUNCTION F_GET_SYS_REFCURSOR_LHR(P_EMPNO NUMBER) RETURN SYS_REFCURSOR IS
CUR_SYS SYS_REFCURSOR;
BEGIN
OPEN CUR_SYS FOR
SELECT LEVEL P_LEVEL,
T.EMPNO,
T.ENAME,
T.MGR,
(LPAD(' ', 6 * (LEVEL - 1)) || LEVEL || ':' || T.ENAME || '(' ||
T.EMPNO || ')') NAME_ALL,
SUBSTR(SYS_CONNECT_BY_PATH(T.ENAME, '=>'), 3) ALL_NAME_LEVEL,
CONNECT_BY_ROOT(T.ENAME) ROOT,
DECODE(CONNECT_BY_ISLEAF, 1, 'Y', 0, 'N') IS_LEAF
FROM SCOTT.EMP T
START WITH T.EMPNO=P_EMPNO
CONNECT BY NOCYCLE MGR = PRIOR EMPNO;
RETURN CUR_SYS;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
查询:
SELECT F_GET_SYS_REFCURSOR_LHR(7566) FROM DUAL;
结果如下所示:

1.2 存储过程返回系统游标
1.2.1 单个表
CREATE OR REPLACE PROCEDURE PRO_GET_SYS_REFCURSOR_LHR(P_EMPNO NUMBER, SYS_CURSOR OUT SYS_REFCURSOR) IS
BEGIN
OPEN SYS_CURSOR&n

本文介绍了如何在Oracle中使用SYS_REFCURSOR系统游标,包括函数和存储过程返回系统游标的详细步骤,涵盖了单个表及多个表的查询操作。
最低0.47元/天 解锁文章
3021

被折叠的 条评论
为什么被折叠?



