0

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を再クエリして、一致するものがあるかどうかを確認できますが、もっと良い方法があるはずです。

4

1 に答える 1

1

カーソルが結果を返すかどうかを判断する唯一の方法は、カーソルから結果をフェッチすることです。もちろん、カーソルは前方のみの構造であるため、カーソルを閉じてから再度開く必要があります。

ただし、最初のカーソルが結果を返す場合にのみ 2 番目のカーソルを開きたいというのは、非常に奇妙に思えます。2 つのテーブルを結合したり、結合したり、2 つの結果を結合するために何か他のことをしたくないですか?

于 2012-11-30T01:46:14.090 に答える