2008-09-23 104 views
7

我正在處理由一些不起眼的工具自動生成移動表的數據庫。順便說一下,我們必須通過一些觸發器來跟蹤表中的信息變化。當然,例如,通過刪除列或更改其類型,表結構中的某些更改會觸發某些觸發器。如何檢查觸發器是否無效?

因此,問題是:有沒有辦法查詢Oracle元數據來檢查是否有一些觸發器被破壞,以便向支持團隊發送報告?

user_triggers給出所有觸發器,並告知它們是否啓用,但不表示它們是否仍然有效。

回答

16
SELECT * 
FROM ALL_OBJECTS 
WHERE OBJECT_NAME = trigger_name 
AND OBJECT_TYPE = 'TRIGGER' 
AND STATUS <> 'VALID' 
+0

不錯!非常感謝! – gizmo 2008-09-23 13:19:57

0

看看SYS.OBJ $,特別是STATUS列。

相關問題