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: merge into, merge into matched, Oracle, oracle merge into, oracle merging rows, oracle pl/sql
No comments
Comments feed for this article