3

ストアド プロシージャにカーソルがあります。クエリからいくつかのデータを選択し、そのデータをカーソルに挿入してから、別のクエリからいくつかのデータを選択して、そのデータを同じカーソルに追加したいと考えています。

これどうやってするの?

4

2 に答える 2

4

カーソルは、SQL ステートメントの読み取り専用ハンドルです。カーソルにデータがありません。カーソルにデータを追加することはできません。カーソルでできることは、次の行をフェッチすることだけです。

カーソルを開くために使用される SQL ステートメントをUNION、2 つの異なる SQL ステートメントを一緒に変更することができます。つまり、

OPEN rc FOR 
  SELECT <<column list>>
    FROM table1
  UNION ALL
  SELECT <<column list>>
    FROM table2;

RETURN rc;
于 2013-03-01T05:20:28.323 に答える
0

プロシージャの戻り値がここでこれを参照する方法がわからない単純な ref_cursor を使用しています

create or replace function test_ref() return sys_refcursor is
     temp sys_refcursor;
   begin
     open temp for 'select * from hr.employees ;
     return v_rc;
   end;
   / 
于 2013-03-01T06:04:52.783 に答える