ファイルに 100k の ID のリストがあります。これらの ID を反復処理したい:
ごとに、が表にあるid
かどうかを確認します。id
updated_date
そうであれば、そのフラグを更新します- そうでない場合は、新しいレコードを追加します
(id, updated_date)
MERGE
節を調べて見つけました。欠点は、MERGE
ID がテーブルにある必要があることです。一時テーブルの作成は、必要な場合にのみ許可されています。
誰でも私を正しい方向に向けることができますか? コードではなく、データベースで実行できるスクリプトでなければなりません。
merge into MyTable x
using ('111', '222', all my ids) b
on (x.id = b.id)
when not matched then
insert (id, updated_date) values (b.id, sysdate)
when matched then
update set x.updated_date = sysdate;
編集:一時テーブルが唯一のオプションである場合は、一時テーブルを使用できるようになりました。