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

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

22.02.2018 17:08:18

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;
/
yazar okanyurt

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda