Selam,
Oracle’da pl/sql ile bir miktar data içeri alacağım. Yalnız atacağım tablo üzerinde trigger var. Sistem kayıt eklendiği tarihi atıyor mesela. Benim session açtığım sırada insert date çalışmasını istemiyorum. Yani session başladığında trigger benim içeri alacağım datalar için kapalı olsun. Normal sistemin çalışmasını etkilemesin.
Daha önceden belirli bir session içinde update işlemi çalıştırırken ben de trigger kapatmak istemiştim. Bildiğim kadarıyla güzel bir yöntemi yok. En azından bir session için triggerı kapat şeklinde. Onun yerine bir değişken yardımıyla kodumu es geçecek şekle getirmiştim.
Mesela değişken tanımla .. trigger_acik := true;
trigger kod bloğunun başına aşağıdaki gibi bir kod parçası ekle.
if trigger_acik = false then
return;
end if;
gibi.bu satırları en üste koyabilirsin. Çalıştıracağın zaman trigger_acik := false deyip kodunu çalıştırabilirsin.
Eğer db’ye bağlandığınız kullanıcı sadece size özel bir kullanıcı ise, trigger’a aşağıdaki gibi bir satır ekleyerek, sizin için trigger’ın çalışmamasını sağlayabilirsiniz.
örnek bir link
http://richmurnane.blogspot.com/2007/11/how-to-disable-oracle-trigger-for.html