【发布时间】:2019-11-24 13:36:17
【问题描述】:
我之前使用过sys_refcursor来返回select语句的数据。但是,我在这里使用execute immediate,所以我无法在execute immediate语句中使用sys_refcursor。
以前我是这样做的
R_C OUT SYS_REFCURSOR //refcursor
OPEN R_C FOR //it used to handle the return of all select statement
SELECT * FROM table_name;
但是,我今天尝试立即执行,我无法打印 select 语句的数据。 所以,按照我的尝试是:
CREATE OR REPLACE PROCEDURE OT.check_data(DATA1 number,R_C OUT SYS_REFCURSOR)
IS
vquery long;
BEGIN
vquery :='select * from ot.employee ';
if data1 = 10 then
vquery := vquery||' where deptno in (10)';
else
vquery := vquery||' where deptno in (20,30)';
end if;
execute immediate vquery;
END;
/
exec OT.check_data(10);
程序运行正常,但我看不到 select 语句的数据。如何在控制台中显示 execute immediate 的数据?我正在使用 toad。
【问题讨论】: