如何检查触发器是否无效?
时间:2020-03-06 14:35:52 来源:igfitidea点击:
我正在使用通过一些晦涩的工具自动生成移动表的数据库。顺便说一下,我们必须通过一些触发器来跟踪表中的信息更改。当然,例如,通过删除列或者更改其类型,表结构中的某些更改会破坏某些触发器。
因此,问题是:有没有一种方法可以查询Oracle元数据以检查是否有某些触发器被破坏,以便将报告发送给支持团队?
user_triggers提供所有触发器,并告知它们是否启用,但不指示它们是否仍然有效。
解决方案
SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME = trigger_name AND OBJECT_TYPE = 'TRIGGER' AND STATUS <> 'VALID'
看一下SYS.OBJ $,特别是STATUS列。