我编写了以下存储过程来将多个数据集返回到我的前端.Net应用程序
create or replace PROCEDURE GET_EMPLOYEE_INFO
(
EMP_NO IN VARCHAR2,
E_RECORD_SET1 OUT SYS_REFCURSOR,
E_RECORD_SET2 OUT SYS_REFCURSOR,
E_RECORD_SET3 OUT SYS_REFCURSOR,
E_RECORD_SET4 OUT SYS_REFCURSOR
) AS
BEGIN
OPEN E_RECORD_SET1 FOR
SELECT * FROM EMP.EMPLOYEES;
OPEN E_RECORD_SET2 FOR
SELECT * FROM EMP.CITIES;
OPEN E_RECORD_SET3 FOR
SELECT * FROM EMP.STATES;
OPEN E_RECORD_SET1 FOR
SELECT * FROM EMP.DURATION;
每个查询都可以自己正确执行。当我执行存储过程时,它显示结果集,但我不相信所有数据都被提取。在底部,它仍然显示“RUNNING IDE CONNECTION”。
SYS_REFCURSOR
类型是否有限制?答案 0 :(得分:0)
END
。您发布的代码无法编译。 EMP_NO
参数执行某些操作。EMP_NO
实际上是声明为字符串。假设一切都是真的
END
以便编译)无法循环。您的代码只是打开游标,它不执行SQL语句,也不会生成任何数据。在客户端应用程序开始获取数据之前不会发生这种情况。SYS_REFCURSOR
参数的过程在语法上是完全有效的。这不会影响从游标中获取的数据。