Başlangıçta tmp_akuzhan isimli bir tablomuz olsun ve ad , soyad isimli iki kolonu olsun. Ad kolonu ‘abdullah’ değeri ile dolu olsun ve soyad kolonu boş olsun.
Aşağıdaki şekilde eşleştiğinde soyadı kolonunu dışardan aldığınız değer ile update edebilirsiniz.
MERGE INTO TMP_AKUZHAN TBL
USING (
SELECT
'abdullah' ad
, 'kuzhan' soyad
FROM
DUAL
) VTBL
ON
(TBL.ad=VTBL.ad)
WHEN MATCHED THEN
UPDATE SET
TBL.soyad=VTBL.soyad
WHEN NOT MATCHED THEN
INSERT
(
ad,
soyad
)
VALUES
(
VTBL.ad,
VTBL.soyad
);
Ayrıca ad kolonları eşleşmiyorsa, yani verdiğiniz değer tabloda yoksa insert ette diyebilirsiniz.
MERGE INTO TMP_AKUZHAN TBL
USING (
SELECT
'perihan' ad
, 'kuzhan' soyad
FROM
DUAL
) VTBL
ON
(TBL.ad=VTBL.ad)
WHEN MATCHED THEN
UPDATE SET
TBL.soyad=VTBL.soyad
WHEN NOT MATCHED THEN
INSERT
(
ad,
soyad
)
VALUES
(
VTBL.ad,
VTBL.soyad
);
Ben ad ve soyad değerlerini kendim belirleyip dual’den select çektim, bu işlem iki tablonun merge edilmesi içinde kullanılabilir.
follow: