我必须在特定块中使用游标,其中包含WHERE
子句的查询动态获取参数...
因此如何使用游标而不在DECLARE
块中声明。
(我不能使用嵌套游标 - 正在寻找示例)。
答案 0 :(得分:0)
您可以使用对您的过程使用本地参数的 隐式光标 。这是它的样子:
declare
v_parm varchar2(3) := 'Z';
begin
-- FIRST LOOP will display all objects owned by Z
for x in ( select * from all_objects where owner=v_parm) loop
dbms_output.put_line(x.object_name);
end loop;
-- SECOND LOOP will display all objects owned by SYS until 100 is reached
-- (that would be a huge bunch otherwise!)
v_parm := 'SYS';
for x in ( select * from all_objects where owner=v_parm and rowid < 100) loop
dbms_output.put_line(x.object_name);
end loop;
end;
/