テーブル target_table にいくつかのレコードを挿入/更新する必要があります。これらのレコードは 1 つの source_table になります。
target_table の更新/挿入に MERGE を使用しています。
MERGE
INTO target_table tgt
USING source_table src
ON ( src.column1 = tgt.column1 and
src.column2 = tgt.column2)
WHEN MATCHED
THEN
UPDATE
SET tgt.column3= src.column3,
tgt.column4 = src.coulmn4
WHEN NOT MATCHED
THEN
INSERT ( tgt.column1,
tgt.column2,
tgt.column3,
tgt.column4 )
VALUES ( src.coulmn1,
src.coulmn2,
src.coulmn3,
src.coulmn4);
更新時に特定の条件を追加したい。
IF target_table.column3 in (val1','val2)
その場合は更新のみが必要であり、それ以外の場合は更新も挿入もありません。