zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

Oracle存储 函数 过程 返回 结果 游标
2023-09-27 14:25:30 时间

 

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;