如果我使用sys_refcursor参数,如果第一个游标有任何结果,我就会挣扎。
create or replace procedure cursorresults
as
(cursor1 OUT sys_refcursor
cursor2 OUT sys_Refcursor)
begin
open cursor1 for
select * from table1;
**if cursor1 has any results**
open cursor2 for
select * from table2;
end;
我可以重新查询table1以查看是否有匹配但是必须有更好的方法吗?
答案 0 :(得分:1)
确定游标是否返回结果的唯一方法是尝试从游标中获取结果。当然,由于游标是仅向前结构,这意味着您需要关闭并重新打开游标。
但是,如果第一个游标返回结果,您只想打开第二个游标,这似乎很奇怪。你确定你不想加入这两个表,联合它们,或者做其他事情来结合这两个结果吗?