Oracle觸發器6-管理觸發器

來源:互聯網
上載者:User
文章目錄
  • 1、禁用,啟用,以及刪除觸發器
  • 2、建立禁用的觸發器
  • 4、檢查觸發器的有效性
1、禁用,啟用,以及刪除觸發器

alter trigger trigger_name disable;

alter trigger trigger_name enable;

drop trigger trigger_name;

舉例:禁用或者啟用某個表上的全部觸發器

create or replace PROCEDURE settrig(tab    IN VARCHAR2,
                                    sch    IN VARCHAR DEFAULT NULL,
                                    action IN VARCHAR2) IS
  l_action       VARCHAR2(10) := UPPER(action);
  l_other_action VARCHAR2(10) := 'DISABLED';
BEGIN
  IF l_action = 'DISABLE' THEN
    l_other_action := 'ENABLED';
  END IF;
  FOR rec IN (SELECT trigger_name
                FROM user_triggers
               WHERE table_owner = UPPER(NVL(sch, USER))
                 AND table_name = tab
                 AND status = l_other_action) LOOP
    EXECUTE IMMEDIATE 'ALTER TRIGGER ' || rec.trigger_name || ' ' ||
                      l_action;
  END LOOP;
END;

2、建立禁用的觸發器

create or replace TRIGGER just_testing
  AFTER INSERT ON abc DISABLE
BEGIN
  NULL;
END;
--注意,重新編譯已經禁用的觸發器,會啟用觸發器。

3、與觸發器相關的資料字典視圖

DBA_TRIGGERS

ALL_TRIGGERS

USER_TRIGGERS

相關詳細資料請參考oracle reference

4、檢查觸發器的有效性

SQL> SELECT object_name,
  object_type,
  status
  FROM user_objects
  WHERE object_name = 'INVALID_TRIGGER';

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.