Oracle’da merge kelimesini kullanarak tek sql ile kayıt varsa güncelleme yoksa ekleme yaptırabiliriz (Upsert).
Upsert Sql’imiz:
Test ediyoruz :
Upsert Sql’imiz:
merge into tablo t
using dual s on (t.alan1=1)
when matched then
update set alan2='UPDATE'
when not matched then
insert (alan1,alan2) values (1,'INSERT');
SQL> create table tablo (alan1 number(10),alan2 varchar2(10));Table createdSQL> select * from tablo; ALAN1 ALAN2
----------- ----------SQL> merge into tablo t
2 using dual s on (t.alan1=1)
3 when matched then
4 update set alan2='UPDATE'
5 when not matched then
6 insert (alan1,alan2) values (1,'INSERT');DoneSQL> select * from tablo; ALAN1 ALAN2
----------- ----------
1 INSERTSQL> merge into tablo t
2 using dual s on (t.alan1=1)
3 when matched then
4 update set alan2='UPDATE'
5 when not matched then
6 insert (alan1,alan2) values (1,'INSERT');DoneSQL> select * from tablo; ALAN1 ALAN2
----------- ----------
1 UPDATESQL> commit;Commit completeSQL>





Alıntı :
YanıtlaSilhttp://www.zekiguven.com/?p=120