23 Mayıs 2011 Pazartesi

Oracle için database trigger

Trigger 'ların database seviyesinde kullanımı da mümkündür.
Aşağıdaki trigger; database içerisindeki 'SCHEMA_ADI'.'TABLO_ADI'
üzerinde her "alter" işlemi yapan DDL statement 'i çalıştığında tetiklenecek
ve hata görüntüleyerek yapılmaya çalışılan alter işlemini iptal edecektir.

CREATE OR REPLACE TRIGGER SYS.BENIM_TRIGGER
BEFORE ALTER
ON DATABASE
DECLARE
tmpVar NUMBER;
BEGIN
IF ora_dict_obj_owner = 'SCHEMA_ADI' and ora_dict_obj_name='TABLO_ADI' THEN
raise_application_error(-20100,ora_dict_obj_name||' uzerinde Alter operasyonu yasak.');
END IF;
END ;

Burada kullanılan trigger attribute 'ları ile ilgili açıklama aşağıdaki gibidir.

ora_dict_obj_owner : DDL hedefindeki object hangi user' a ait?
ora_dict_obj_name : DDL hedefindeki object ismi ne?

Daha fazla bilgi için aşağıdaki bağlantıyı ziyaret edebilirsiniz.

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/triggers.htm#CHDCFDJG

Hiç yorum yok:

Yorum Gönder