選択クエリのカーソルに基づいてテーブルを更新するには、2 つのオプションがあります。
次の選択クエリがあるとします。
select id1 from table1
私の更新クエリは次のとおりです。
update table2 set value=1 where table2.id2 = table1.id1
現在、2 つのオプションは次のとおりです。
選択クエリにカーソルを設定し、一括でフェッチしてから、for all ステートメント内で更新クエリを起動します。
選択サブクエリを使用して更新クエリを次のように記述します。
update table2 set value=1 where table2.id2 in (table1 から id1 を選択)
どちらの方がよいですか?
Oracle は select サブクエリを一括収集に内部的に変換しますか、それとも通常のカーソルとして扱いますか?