Oracle函数/存储过程返回结果集(游标)

 

1、函数返回结果集(游标)

-- 函数
CREATE OR REPLACE FUNCTION OUTTEST (
    I_NAME         IN  VARCHAR2  --接收输入参数
)
RETURN   SYS_REFCURSOR
AS
    RESULT_SET SYS_REFCURSOR; --返回游标
    X_SQL VARCHAR2(200);
BEGIN
     X_SQL :='SELECT ID,NAME FROM TEST WHERE NAME LIKE  ''%' || I_NAME||'%''' ;  --生成SQL语句
     OPEN RESULT_SET FOR X_SQL;
     RETURN RESULT_SET;   --返回游标
END OUTTEST;

输出:

 SELECT OUTTEST('C') FROM DUAL;

 

 

2、存储过程返回结果集(游标)

-- 存储过程
CREATE OR REPLACE PROCEDURE P_TEST(
        P_CUR OUT SYS_REFCURSOR -- 游标出参
)
AS
BEGIN
    OPEN P_CUR FOR SELECT * FROM TEST;
END P_TEST; 

输出:

在sqlplus执行下面语句

VAR R REFCURSOR;  
EXEC P_TEST(:R);  
SELECT :R FROM DUAL;

 

posted @ 2022-06-07 16:42  harara  阅读(4913)  评论(0)    收藏  举报