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
Oracle veri tabanında session bazlı trigger aç/kapa nasıl yapılır?

Çözüldü 1 Cevaplar 70 Gösterim Veri Tabanı
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.
kapalı

1 cevap

0
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.
(4k puan)
seçti
1Yorumlar
(586 puan)

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;