首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 查詢表觸發器:單條 SQL 快速定位

     編輯:Oracle 資料庫相關知識

核心查詢

SELECT * FROM all_triggers WHERE table_name = '你的表名';

視圖選擇指南

視圖範圍適用場景
USER_TRIGGERS當前用戶擁有的觸發器開發者自查
ALL_TRIGGERS當前用戶可存取的觸發器跨 Schema 查詢 (推薦)
DBA_TRIGGERS全資料庫觸發器DBA 審計、需 SELECT ANY DICTIONARY

常用欄位說明

進階查詢範例

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';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
欄位含義
TRIGGER_NAME觸發器名稱
TRIGGER_TYPEBEFORE/AFTER/INSTEAD OF + ROW/STATEMENT
TRIGGERING_EVENTINSERT/UPDATE/DELETE 或 DDL 事件
TABLE_OWNER基礎表擁有者
TABLE_NAME基礎表名稱
STATUSENABLED/DISABLED
TRIGGER_BODYPL/SQL 程式碼 (CLOB)