我是oracle的新手,需要解决以下问题。
在存储过程中我想要返回2个这样的游标。
PROCEDURE MyProcA()
as
begin
open refcursorA FOR
select id, ..... FROM tableA where ..... long series of conditions
open refcursorB FOR
select * FROM table b where b.id IN (select id FROM tableA where ..... long series of conditions)
这就是我现在拥有存储过程的方式,但我不喜欢重复。第二个游标中括号中的where子句SQL与第一个游标完全相同。如何将其加载到临时表或关联数组中,或者在两个游标中使用。
提前致谢
答案 0 :(得分:0)
您似乎需要REF Cursor
如何宣布?
cursor cursor_name is ref cursor;
如何使用?
open cursor_name for your select query
loop
fetch cursor_name into some_variable;
exit when cursor_name%notfound;
do_something;
end loop;
close cursor_name;
因此,相同的游标变量将动态指向不同的sql区域。
或强>
您可以看到Cursor Expression