有没有办法知道触发器的DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY是否设置为false?
DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY('"S1"','"MY_TRIGGER"',FALSE) ;
默认情况下,该属性设置为TRUE,我需要查询属性是否设置为false,因为当我重新创建触发器时,我需要再次将其设置为false。
答案 0 :(得分:1)
您需要查看all_triggers
data dictionary view(或fire_once
或apply_server_only
中的dba_triggers
和user_triggers
列,具体取决于您的权限和具体情况你正在看的一组触发器。
答案 1 :(得分:0)
贾斯汀的回答似乎适用于Oracle 11,但是Oracle 10中没有这些列,我正在使用它。
在Oracle 10中,DBMS_DDL.IS_TRIGGER_FIRE_ONCE函数返回触发器标志的值。
DECLARE
isFiring BOOLEAN := false;
BEGIN
isFiring := dbms_ddl.IS_TRIGGER_FIRE_ONCE('S1', 'MY_TRIGGER');
IF isFiring = true THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;