| 欄位 | 含義 |
| TRIGGER_NAME | 觸發器名稱 |
| TRIGGER_TYPE | BEFORE/AFTER/INSTEAD OF + ROW/STATEMENT |
| TRIGGERING_EVENT | INSERT/UPDATE/DELETE 或 DDL 事件 |
| TABLE_OWNER | 基礎表擁有者 |
| TABLE_NAME | 基礎表名稱 |
| STATUS | ENABLED/DISABLED |
| TRIGGER_BODY | PL/SQL 程式碼 (CLOB) |
進階查詢範例
1. 僅看啟用的行級 DML 觸發器
SELECT trigger_name, triggering_event, status
FROM all_triggers
WHERE table_name = 'EMP'
AND trigger_type LIKE '%ROW%'
AND status = 'ENABLED';
2. 取得完整重建 DDL
SET LONG 50000
SET PAGESIZE 0
SELECT dbms_metadata.get_ddl('TRIGGER', trigger_name, owner)
FROM all_triggers
WHERE table_name = 'EMP';
3. 檢查是否有 INSTEAD OF 觸發器 (視圖專用)
SELECT trigger_name, base_object_type, table_name
FROM all_triggers
WHERE base_object_type = 'VIEW'
AND table_name = 'YOUR_VIEW';
- 上一篇文章: Oracle 單行函數完整分類指南:字符/數值/日期/轉換/通用
- 下一篇文章: Oracle CONNECT BY PRIOR 遞歸查詢:從葉子節點反向尋找根節點
Copyright ©
程式碼之家 All Rights Reserved