Oracle PL/SQL – トリガを有効または無効にする
この記事では、
ALTER TRIGGER`と
ALTER TABLE`を使ってトリガを有効/無効にする方法を説明します。
-- enable/disable a trigger ALTER TRIGGERトリガー名ENABLE; ALTER TRIGGER trigger__name無効です。 -- enable/disable all triggers for a specific table ALTER TABLE table__name ENABLE ALL TRIGGERS; ALTER TABLE table__name DISABLE ALL TRIGGERS;
1.テーブルトリガ
1.1テーブルと2つのトリガを作成します。
テストデータ
--Creating test__data table. CREATE TABLE test__data ( ID番号(5)主キー、 test__result number(5) );
trg
test
a
SET SERVEROUTPUT ON; trg__test__aを作成または置換する前に各行に対してtest__dataを更新または削除または挿入する ベギン -- business logic will be here to perform on any insert/update/delete dbms__output.put__line('trg__test__a Trigger called.'); END;
trg
test
b
SET SERVEROUTPUT ON; trg__test__bを作成または置換する前に各行のtest__dataを更新または削除または挿入する ベギン dbms__output.put__line( 'trg__test__bトリガが呼び出されました。'); 終わり;
トリガーを作成すると、デフォルトで `ENABLED`になります。
SELECT TRIGGER__NAME、STATUS FROM USER__TRIGGERS( 'TRG__TEST__A'、 'TRG__TEST__B')内のupper(TRIGGER__NAME);
[cols = “、”、options = “header”、]| ====================
| TRIGGER
NAME | STATUS
| trg
test
a | ENABLED
| trg
test__b | ENABLED
| ====================
2. ALTER TRIGGER – トリガーを有効または無効にします。
2.1トリガを無効にする例
trg
test
a
ALTER TRIGGER trg__test__a無効です。
2.2トリガの状態を確認します。
SELECT TRIGGER__NAME、USER__TRIGGERSからのステータス、upper(TRIGGER__NAME)= 'TRG__TEST__A';
[cols = “、”、options = “header”、]| ====================
| TRIGGER
NAME | STATUS
| TRG
TEST__A | DISABLED
| ====================
。トリガが参照するオブジェクトは使用できません。
。大量のデータロードを実行し、迅速に処理を進める必要があります
トリガを発射することなく。
。トリガーが適用されるテーブルにデータをロードしています。
2.3無効なトリガを有効にする例
trg
test
a
ALTER TRIGGER trg__test__a ENABLE;
2.4トリガ状態を再度確認してください。
SELECT TRIGGER__NAME、USER__TRIGGERSからのステータス、upper(TRIGGER__NAME)= 'TRG__TEST__A';
[cols = “、”、options = “header”、]| ====================
| TRIGGER
NAME | STATUS
| TRG
TEST__A | ENABLED
| ====================
3. ALTER TABLE – すべてのトリガーを有効または無効にします。
3.1特定のテーブル `test__data`のすべてのトリガを無効にする例
ALTER TABLE test__dataすべてのトリガーを無効にします。
3.2トリガーの状態を確認します。
SELECT TRIGGER__NAME、STATUS FROM USER__TRIGGERSここで、upper(TRIGGER__NAME)IN( 'TRG__TEST__A'、 'TRG__TEST__B');
[cols = “、”、options = “header”、]| ====================
| TRIGGER
NAME | STATUS
| TRG
TEST
A | DISABLED
| TRG
TEST__B | DISABLED
| ====================
3.3特定のテーブル `test__data`のすべてのトリガを有効にする例
ALTER TABLE test__dataすべてのトリガーを有効にします。
3.4トリガステータスを再度確認します。
SELECT TRIGGER__NAME、STATUS FROM USER__TRIGGERSここで、upper(TRIGGER__NAME)IN( 'TRG__TEST__A'、 'TRG__TEST__B');
[cols = “、”、options = “header”、]| ====================
| TRIGGER
NAME | STATUS
| TRG
TEST
A | ENABLED
| TRG
TEST__B |有効
| ====================
===参考文献
。
https://docs.oracle.com/cd/B19306
01/server.102/b14200/statements
4001.htm[英語版]TRIGGERの例]。
Database
管理者ガイド: – トリガーの有効化と無効化
。
https://docs/トリガー
]
alter table
リンク://tag/oracle/[oracle]
plsql
trigger