2014-12-02 35 views
1

我有一堆生成的表,每个表都有一个名为SOMETHINGCONSTANT_TRIGGERINGTABLE的触发器。有没有办法一次启用或禁用所有这些触发器?如何更改oracle中多个表的触发器?

+0

PL/SQL是否可以接受?如果是,请考虑在您的问题中添加相关标签。 – 2014-12-02 19:18:52

+1

添加它,谢谢。 – Yitzchak 2014-12-02 19:19:58

回答

3

试试这个,

declare 
    stmt_ varchar2(4000); 
begin 
    for rec_ in (select TRIGGER_NAME from USER_TRIGGERS 
       where trigger_name LIKE 'SOMETHINGCONSTANT%') loop 

    stmt_ := 'ALTER TRIGGER ' || rec_.TRIGGER_NAME || ' ENABLE'; 

    EXECUTE IMMEDIATE stmt_; 

    end loop; 
end; 

我相信你在同一用户的所有触发器和表格,否则您需要登录到特定的用户和运行查询,如果有涉及到多个用户。