説明
このビューはV2.2.30バージョンから導入されました。
機能の概要
現在ユーザーがアクセス可能なテーブル上のトリガーを表示します。ユーザーに CREATE ANY TRIGGER 権限が付与されている場合、このビューは現在のテナント内のすべてのトリガーを記述するために使用されます。
適用対象
このビューはOceanBaseデータベースのOracleモードでのみ適用されます。
フィールド説明
フィールド名 |
タイプ |
NULL許容 |
説明 |
|---|---|---|---|
| OWNER | VARCHAR2(128) | NO | トリガーの所有者 |
| 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 | バージョン間情報です。現在のOceanBaseデータベースはサポートしていません。 |
| 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.ALL_TRIGGERS\G
クエリ結果は次のとおりです:
*************************** 1. row ***************************
OWNER: SYS
TRIGGER_NAME: ORDER_LIST_INSERT
TRIGGER_TYPE: INSTEAD OF
TRIGGERING_EVENT: INSERT
TABLE_OWNER: SYS
BASE_OBJECT_TYPE: VIEW
TABLE_NAME: ORDER_LIST
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 order_list_insert
INSTEAD OF INSERT ON order_list
DECLARE
duplicate_info EXCEPTION;
PRAGMA EXCEPTION_INIT (duplicate_info, -00001);
BEGIN
INSERT INTO customers
(customer_id, cust_last_name, cust_first_name)
VALUES (
:new.customer_id,
:new.cust_last_name,
:new.cust_first_name);
INSERT INTO orders (order_id, order_date, customer_id)
VALUES (
:new.order_id,
:new.order_date,
:new.customer_id);
EXCEPTION
WHEN duplicate_info THEN
RAISE_APPLICATION_ERROR (
-20107,
'Duplicate customer or order ID');
END order_list_insert
CROSSEDITION: NO
BEFORE_STATEMENT: NO
BEFORE_ROW: YES
AFTER_ROW: NO
AFTER_STATEMENT: NO
INSTEAD_OF_ROW: YES
FIRE_ONCE: YES
APPLY_SERVER_ONLY: NO
1 row in set
関連ビューまたはドキュメント
現在のテナント内のすべてのトリガーを確認する:DBA_TRIGGERS
現在のユーザーが所有するトリガーを確認する:USER_TRIGGERS
トリガーの紹介と使用方法については、トリガーの作成と管理を参照してください。