Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
16 gösterim
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.
Veri Tabanı kategorisinde (1.8k puan) sordu

1 cevap

0 oy
 
En İyi Cevap
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.
(3.5k puan) cevapladı
seçti

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.

 IF SYS_CONTEXT ('USERENV', 'CURRENT_USER') <> 'sizinkullanıcı adınız' THEN
    --trigger iceriği

  END IF; 

İlgili sorular

0 oy
1 cevap 13 gösterim
0 oy
1 cevap 55 gösterim
0 oy
1 cevap 28 gösterim
+1 oy
1 cevap 23 gösterim
...