トリガーの情報を参照するには、
TRIGGERSデータディクショナリビューを参照します。
TRIGGERSデータディクショナリの種類
TRIGGERSデータディクショナリビューには以下3種類があります。
| DBA_TRIGGERS | 全てのトリガー情報を対象とする ※権限が必要 |
|---|---|
| ALL_TRIGGERS | ログインユーザが参照可能なトリガーを対象とする |
| USER_TRIGGERS | ログインユーザが保持するトリガーを対象とする |
TRIGGERSデータディクショナリの定義
TRIGGERSデータディクショナリの定義です。
(DBA/ALL/USERの違いは、OWNER列のありなしのみです。)
| 列名 | 型 | メモ |
|---|---|---|
| OWNER | VARCHAR2(30) | トリガーの所有者 ※DBA_TRIGGERS、ALL_TRIGGERSのみ |
| TRIGGER_NAME | VARCHAR2(30) | トリガー名 |
| TRIGGER_TYPE | VARCHAR2(16) | トリガーが起動するタイミング |
| TRIGGERING_EVENT | VARCHAR2(227) | トリガーが起動するイベント |
| TABLE_OWNER | VARCHAR2(30) | トリガーが定義されている表の所有者 |
| BASE_OBJECT_TYPE | VARCHAR2(16) | トリガーが定義されているオブジェクト TABLE/VIEW/SCHEMA/DATABASE |
| TABLE_NAME | VARCHAR2(30) | トリガーが定義されている表名、ビュー名 ※テーブルまたはビュー以外の場合はNULL。 |
| COLUMN_NAME | VARCHAR2(4000) | ネストした表の列名 |
| REFERENCING_NAMES | VARCHAR2(128) | |
| WHEN_CLAUSE | VARCHAR2(4000) | |
| STATUS | VARCHAR2(8) | トリガーの使用可否(ENABLED/DISABLED) |
| DESCRIPTION | VARCHAR2(4000) | トリガーの説明文 |
| ACTION_TYPE | VARCHAR2(11) | トリガーの実行形式(CALL、PL/SQL) |
| TRIGGER_BODY | LONG | トリガー起動時に実行される文 |
| CROSSEDITION | VARCHAR2(7) | CROSSEDITIONトリガータイプ (FORWARD、REVERSE、NO) |
| BEFORE_STATEMENT | VARCHAR2(3) | トリガーにBEFORE STATEMENTセクションがあるかどうか(YES/NO) |
| BEFORE_ROW | VARCHAR2(3) | トリガーにBEFORE EACH ROWセクションがあるかどうか(YES/NO) |
| AFTER_ROW | VARCHAR2(3) | トリガーにAFTER EACH ROWセクションがあるかどうか(YES/NO) |
| AFTER_STATEMENT | VARCHAR2(3) | トリガーにAFTER STATEMENTセクションがあるかどうか(YES/NO) |
| INSTEAD_OF_ROW | VARCHAR2(3) | トリガーにINSTEAD OFセクションがあるかどうか(YES/NO) |
| FIRE_ONCE | VARCHAR2(3) | |
| APPLY_SERVER_ONLY | VARCHAR2(3) |
サンプル
例)'TARO'が所有しているトリガーの一覧を取得する
|
1 |
select * from all_triggers where owner = 'TARO'; |
メモ
- TRIGGER_NAMEを検索条件とする場合、必ず大文字で指定してください。
- DBA_TRIGGERSを検索する場合は、すべてのトリガーを参照する権限が必要です。