merge文は最終的にいくつかの一致するレコードを削除することができます。
次の例では、マージ後の4つのレコードを含むテーブルが、挿入、更新、および削除によって一度に影響を受けることがわかります。
SQL> create table xxx as
2 select rownum as rn, 'xxx' as pla
3 from dual
4 connect by rownum < 5
5/
Table created
SQL> select *
2 from xxx
3/
RN PLA
---------- ---
1 xxx
2 xxx
3 xxx
4 xxx
SQL> merge into xxx tgt using (
2 select rownum as rn,mod(rownum,2) as even_odd
3 from dual
4 connect by rownum < 6
5 ) src on (tgt.rn = src.rn)
6 when matched then update set tgt.pla = null
7 delete where even_odd = 1
8 when not matched then insert(rn,pla) values (src.rn,'XXX')
9/
5 rows merged
SQL> select *
2 from xxx
3/
RN PLA
---------- ---
2
4
5 XXX
SQL>
応答のための応答... –