内部使用游标外部声明块

时间:2017-07-05 09:46:21

标签: oracle plsql cursor

我必须在特定块中使用游标,其中包含WHERE子句的查询动态获取参数...

因此如何使用游标而不在DECLARE块中声明。

(我不能使用嵌套游标 - 正在寻找示例)。

1 个答案:

答案 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;
/