如何在oracle中更改多个表的触发器?

时间:2014-12-02 18:58:43

标签: oracle plsql

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

1 个答案:

答案 0 :(得分: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;

我相信你在同一个用户中拥有所有触发器和表,否则你需要登录到特定用户并在涉及多个用户时运行查询。