如何知道触发器的DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY是否设置为false?

时间:2015-03-10 20:28:08

标签: oracle plsql oracle10g

有没有办法知道触发器的DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY是否设置为false?

DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY('"S1"','"MY_TRIGGER"',FALSE) ; 

默认情况下,该属性设置为TRUE,我需要查询属性是否设置为false,因为当我重新创建触发器时,我需要再次将其设置为false。

2 个答案:

答案 0 :(得分:1)

您需要查看all_triggers data dictionary view(或fire_onceapply_server_only中的dba_triggersuser_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;