7
我正在处理由一些不起眼的工具自动生成移动表的数据库。顺便说一下,我们必须通过一些触发器来跟踪表中的信息变化。当然,例如,通过删除列或更改其类型,表结构中的某些更改会触发某些触发器。如何检查触发器是否无效?
因此,问题是:有没有办法查询Oracle元数据来检查是否有一些触发器被破坏,以便向支持团队发送报告?
user_triggers给出所有触发器,并告知它们是否启用,但不表示它们是否仍然有效。
我正在处理由一些不起眼的工具自动生成移动表的数据库。顺便说一下,我们必须通过一些触发器来跟踪表中的信息变化。当然,例如,通过删除列或更改其类型,表结构中的某些更改会触发某些触发器。如何检查触发器是否无效?
因此,问题是:有没有办法查询Oracle元数据来检查是否有一些触发器被破坏,以便向支持团队发送报告?
user_triggers给出所有触发器,并告知它们是否启用,但不表示它们是否仍然有效。
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_NAME = trigger_name
AND OBJECT_TYPE = 'TRIGGER'
AND STATUS <> 'VALID'
看看SYS.OBJ $,特别是STATUS列。
不错!非常感谢! – gizmo 2008-09-23 13:19:57