我正在创建一个动态游标,我想循环遍历游标中的列。我该怎么做?
例如:
create or replace procedure dynamic_cursor(empid in varchar2, RC IN OUT sys_refcursor) as
stmt varchar2(100);
begin
stmt := 'select * from employees where id = ' || empid;
open RC for stmt using val;
for each {{COLUMN OR SOMETHING}}
--TODO: Get this to work
loop;
end;
答案 0 :(得分:3)
您需要使用Oracle Dynamic SQL,最有可能使用method 4。
编辑: 对不起,以上是针对Pro * C的。您需要使用DBMS_SQL包。它相当复杂,但允许您在运行时解析,执行和获取所需的任意SQL语句。特别是,看看例子3和8。