説明
このビューは、V2.2.30バージョンから導入されました。
機能の概要
現在のユーザーが持つすべてのトリガーを表示します。
適用対象
このビューはOceanBaseデータベースのOracleモードにのみ適用されます。
フィールドの説明
| フィールド名 | タイプ | NULLを許容するか | 説明 |
|---|---|---|---|
| TRIGGER_NAME | VARCHAR2(128) | NO | トリガーの名前 |
| TRIGGER_TYPE | VARCHAR2(16) | NO | トリガーのタイプ:
|
| TRIGGERING_EVENT | VARCHAR2(246) | NO | トリガーイベント。現在のOceanBaseデータベースはINSERT、UPDATE、DELETEなどのみをサポートします。 |
| TABLE_OWNER | VARCHAR2(128) | NO | テーブル所有者。トリガー対象がテーブルの場合に有効です。 |
| BASE_OBJECT_TYPE | VARCHAR2(18) | NO | トリガー対象のタイプ。現在のOceanBaseデータベースはTABLEのみをサポートします。 |
| TABLE_NAME | VARCHAR2(256) | NO | テーブル名。トリガー対象がテーブルの場合に有効です。 |
| COLUMN_NAME | VARCHAR2(4000) | NO | 列名。トリガー対象がネストテーブルの場合にのみ有効であり、その他の場合はNULLとなります。 |
| REFERENCING_NAMES | VARCHAR2(422) | NO | REF名、OLDとNEWのエイリアス。 |
| WHEN_CLAUSE | VARCHAR2(4000) | YES | トリガー条件 |
| STATUS | VARCHAR2(8) | NO | ステータス: |
| DESCRIPTION | VARCHAR2(65536) | NO | トリガーの説明。名前、タイプ、イベント情報を含みます。 |
| ACTION_TYPE | VARCHAR2(11) | NO | ACTIONタイプ。現在のOceanBaseデータベースはPL/SQLのみをサポートします。 |
| TRIGGER_BODY | VARCHAR2(65536) | NO | トリガー文。 |
| CROSSEDITION | VARCHAR2(7) | NO | バージョン間情報。現在このフィールドはサポートされていません |
| BEFORE_STATEMENT | VARCHAR2(3) | NO | ステートメントの前、YES/NO。組み合わせトリガーが指定されたタイプのセクションを含むかどうかを示します。 |
| BEFORE_ROW | VARCHAR2(3) | NO | 行の前、YES/NO。組み合わせトリガーが指定されたタイプのセクションを含むかどうかを示します。 |
| AFTER_ROW | VARCHAR2(3) | NO | 行の後、YES/NO。組み合わせトリガーが指定されたタイプのセクションを含むかどうかを示します。 |
| AFTER_STATEMENT | VARCHAR2(3) | NO | ステートメントの後、YES/NO。組み合わせトリガーが指定されたタイプのセクションを含むかどうかを示します。 |
| INSTEAD_OF_ROW | VARCHAR2(3) | NO | 代替、YES/NO。組み合わせトリガーが指定されたタイプのセクションを含むかどうかを示します。 |
| FIRE_ONCE | VARCHAR2(3) | NO | 現在このフィールドはサポートされていません |
| APPLY_SERVER_ONLY | VARCHAR2(3) | NO | 現在このフィールドはサポートされていません |
クエリ例
現在のユーザーが持つすべてのトリガーを確認します。
obclient[SYS]> SELECT * FROM SYS.USER_TRIGGERS\G
クエリ結果は次のとおりです:
*************************** 1. row ***************************
TRIGGER_NAME: TRG_BEFORE_UPDATE
TRIGGER_TYPE: BEFORE EACH ROW
TRIGGERING_EVENT: UPDATE
TABLE_OWNER: SYS
BASE_OBJECT_TYPE: TABLE
TABLE_NAME: TEST_TABLE
COLUMN_NAME: NULL
REFERENCING_NAMES: REFERENCING NEW AS NEW OLD AS OLD
WHEN_CLAUSE: NULL
STATUS: ENABLED
DESCRIPTION: NULL
ACTION_TYPE: PL/SQL
TRIGGER_BODY: TRIGGER trg_before_update
BEFORE UPDATE ON test_table
FOR EACH ROW
BEGIN
:NEW.update_time := SYSTIMESTAMP;
DBMS_OUTPUT.PUT_LINE('Trigger trg_before_update executed');
END
CROSSEDITION: NO
BEFORE_STATEMENT: NO
BEFORE_ROW: YES
AFTER_ROW: NO
AFTER_STATEMENT: NO
INSTEAD_OF_ROW: NO
FIRE_ONCE: YES
APPLY_SERVER_ONLY: NO
*************************** 2. row ***************************
TRIGGER_NAME: TRG_AUDIT_BASE
TRIGGER_TYPE: AFTER EACH ROW
TRIGGERING_EVENT: UPDATE
TABLE_OWNER: SYS
BASE_OBJECT_TYPE: TABLE
TABLE_NAME: TEST_ORDER
COLUMN_NAME: NULL
REFERENCING_NAMES: REFERENCING NEW AS NEW OLD AS OLD
WHEN_CLAUSE: NULL
STATUS: ENABLED
DESCRIPTION: NULL
ACTION_TYPE: PL/SQL
TRIGGER_BODY: TRIGGER trg_audit_base
AFTER UPDATE ON test_order
FOR EACH ROW
BEGIN
INSERT INTO audit_log(action_type, log_content, log_time)
VALUES ('UPDATE', 'Base audit triggered', SYSTIMESTAMP);
END
CROSSEDITION: NO
BEFORE_STATEMENT: NO
BEFORE_ROW: NO
AFTER_ROW: YES
AFTER_STATEMENT: NO
INSTEAD_OF_ROW: NO
FIRE_ONCE: YES
APPLY_SERVER_ONLY: NO
*************************** 3. row ***************************
TRIGGER_NAME: TRG_AUDIT_DETAIL
TRIGGER_TYPE: AFTER EACH ROW
TRIGGERING_EVENT: UPDATE
TABLE_OWNER: SYS
BASE_OBJECT_TYPE: TABLE
TABLE_NAME: TEST_ORDER
COLUMN_NAME: NULL
REFERENCING_NAMES: REFERENCING NEW AS NEW OLD AS OLD
WHEN_CLAUSE: NULL
STATUS: ENABLED
DESCRIPTION: NULL
ACTION_TYPE: PL/SQL
TRIGGER_BODY: TRIGGER trg_audit_detail
AFTER UPDATE ON test_order
FOR EACH ROW
FOLLOWS trg_audit_base
BEGIN
INSERT INTO audit_log(action_type, log_content, log_time)
VALUES ('UPDATE', 'Detail: Amount changed from ' || :OLD.amount || ' to ' || :NEW.amount, SYSTIMESTAMP);
END
CROSSEDITION: NO
BEFORE_STATEMENT: NO
BEFORE_ROW: NO
AFTER_ROW: YES
AFTER_STATEMENT: NO
INSTEAD_OF_ROW: NO
FIRE_ONCE: YES
APPLY_SERVER_ONLY: NO
3 rows in set
関連するビューまたはドキュメント
現在のユーザーがアクセスできるすべてのトリガーを表示するには、ALL_TRIGGERS参照してください。
現在のテナント内のすべてのトリガーを表示するには、DBA_TRIGGERS参照してください。
トリガーの紹介と使用方法については、トリガーの作成と管理を参照してください。