Insert ifadeleri genellikle ETL processlerinde çok kullanılan ifadelerdir. Tek bir dml ifadesinden daha kullanışlı ve fonksiyonel olduğu için kullanılırlar. Bu ifadelerde 4 tarz durum bulunmaktadır.
1- Unconditional insert
2- Conditional insert first
3- Pivoting insert
4- Conditional insert all
Conditional insert first:
Oracle veritabanı böyle bir ifadeyle karşılaştığında ilk önce şartları gözden geçirir. Bu şartları gözden geçirirken de "when" koşullarına bakar. Buna göre de yapılacak kayıt ekleme işlemi gerçekleştirilir. Bu işlem değerlendirilirken de karşılaşılan ilk doğru şarta bakılır.
insert first
when salary <5000 then
into sal_low --tablo adı-- values (employee_id,last_name,salary)
else
into sal_high --tablo adı-- values (employee_id,last_name,salary)
select employee_id,first_name,salary from employees;
Conditional insert all:
Bu şartlı ifadede ise farklı şartların farklı durumlara yol açması nedeniyle farklı tablolara kaydın yapılması sağlanmaktadır.
insert first
when salary <5000 then
into sal_low --tablo adı-- values (employee_id,last_name,salary)
when job_id is not null then
into sal_high --tablo adı-- values (employee_id,last_name,salary)
select employee_id,first_name,salary from employees;
UnConditional insert all:
Bu ifade de hiçbir şart yoktur. Alınan değerler direk tablolara nakledilirler. Bu tarz bir ifadeyi bilgilerin çoğaltılması gerekirken veya aynı bilgiyi içeren tablolar bulunup da bunlara bilgi aktarmamız gerektiğinde kullanabiliriz.
insert all
into --tablo_adı-- values(employee_id,last_name,salary)
into --tablo_adı2-- values(employee_id,last_name,salary)
select employee_id,first_name,salary from employees;
Pivoting insert :
Pivotlama insert'ü bir tablonun bir boyutta pivotlanıp çevrilmesi demektir. Yukarıdaki örnekten farkı ise bilgilerin hep aynı tabloya kaydedilmesidir. Bu şekilde farklı bir bakış açısı getirilir.
insert all
into --tablo_adı-- values(employee_id,last_name,salary)
into --tablo_adı-- values(employee_id,last_name,salary)
select employee_id,first_name,salary from employees;
Hiç yorum yok:
Yorum Gönder