Оператор merge может в конечном итоге удалить некоторые совпадающие записи.
В следующем примере вы можете заметить, что на таблицу, содержащую четыре записи после слияния, могут влиять вставки, обновления и удалениявсе сразу.
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>