Oracle Merging Rows

Oracle’da bir tablonuzun kopyasını çıkarmak ve bunun belli bir eşlemeye göre yapılmasını istiyorsanız çok güzel bir yapısı olan “merge into” deneyebilirsiniz.

Eşleyen kurala göre match edip veya etmemeye göre oluşturduğunuz kopya tablosuna verilerinizi düzenleyip veya insert ederek işleminizi gerçekleştirebilirsiniz. Tabi bu sadece bir küçük bir senaryo.

  • Yapılacak işlem employess tablosu içindeki employee_id tipindeki v_empno değişkenine yuz atamak ve bu id değerine bağlı olarak eşlenen tabloyu, temel tabloya göre güncellemek veya eşlenmeme durumuna göre ekleme yapmak olacak.


DECLARE
	v_empno employees.employee_id%TYPE := 100;
BEGIN
MERGE INTO copy_emp c
     USING employees e
     ON (e.employee_id = v_empno)
   WHEN MATCHED THEN
     UPDATE SET
       c.first_name     = e.first_name,
       c.last_name      = e.last_name,
       c.email          = e.email,
       . . .
   WHEN NOT MATCHED THEN
     INSERT VALUES(e.employee_id, e.first_name, e.last_name,
          . . .,e.department_id);
END;

Tags: , , , , ,

Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>