Pythontr

husonet | Tarih: 22.02.2018

Oracle Veritabanı ile before trigger kullanım örneği

Oracle Veritabanı before trigger'da işlem yapılan tabloya select işlemi

Merhabalar Arkadaşlar, (Not:Lütfen öneri ve sorularınızı yorum olarak atınız. Teşekkürler şimdiden)



Bu makalemde oracle veritabanı insert yada update yapılırken aynı tabloda select işlemi yapılan bir örneği paylaşacağım.



CREATE OR REPLACE TRIGGER TRG_ADI
BEFORE INSERT OR UPDATE
ON TABLO_ADI
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
pragma autonomous_transaction; /*
Bu aynı tabloya select yapmak için eklenmiştir.
*/
CarhesKod VARCHAR(100);
BEGIN

if :OLD.DEGER = :NEW.DEGER then
RETURN; /*
Burası istediğimiz değer işlemden önce/sonra aynı ise trigger'ı çalıştırmamak için konulmuştur.
*/
end if;


CarhesKod:='';
BEGIN
SELECT ALAN1 into CarhesKod FROM TABLO_ADI WHERE TABLO_ADI.ALAN1 = :NEW.DEGER AND TABLO_ADI.DEGER_DLT<>1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
CarhesKod := '';
END;

if length(CarhesKod) >0 then
:NEW.DEGER := 1;
end if;


commit; /*
Aynı tabloya işlem yaptığımız için transaction işlemi havada kalmaması için commit edilmiştir.
*/
END TRG_CARHES;
/