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