2014-12-02 36 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; 

我相信你在同一用戶的所有觸發器和表格,否則您需要登錄到特定的用戶和運行查詢,如果有涉及到多個用戶。