SORU
26 EKİM 2008, Pazar


Oracle: (nasıl Güncelleme ya da bir tabloya?)UPSERT için

Ya güncellemeler veya ekler UPSERT işlemi bir tablodaki bir satır, tablo olarak zaten data ile eşleşen bir satır vardır:

if table t has a row exists that has key X:
    update t set mystuff... where mykey=X
else
    insert into t mystuff...

Oracle özel UPSERT bir açıklama olmadığı için, bunu yapmak için en iyi yolu nedir?

CEVAP
26 EKİM 2008, Pazar


İki tablo arasında MERGE statement birleştirir verileri. Kullanarak ÇİFT bizi bu komutu kullanmak için izin verir.

create or replace
procedure ups(xa number)
as
begin
    merge into mergetest m using dual on (a = xa)
         when not matched then insert (a,b) values (xa,1)
             when matched then update set b = b 1;
end ups;
/
drop table mergetest;
create table mergetest(a number, b number);
call ups(10);
call ups(10);
call ups(20);
select * from mergetest;

A                      B
---------------------- ----------------------
10                     2
20                     1

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006