Oracle搜索编译有问题或者失效的存储过程,包,函数等
Oracle 9i中,有的时候表增加或者删除字段,导致引用其的存储过程,函数,包等对象编译报错,需要重新手工编译一下才行。如何检查功能上线后是否有失效的对象,可以通过如下SQL实现:
select * from user_objects where status <> 'VALID';
例子:从PL/SQL工具中看到如图三个存储过程有问题,我们用如上的SQL验证一下(PS:因为无效的存储过程不仅仅是这三个,为了缩小记录数,where条件中限制只查这几个存储过程是否失效)
使用我们的SQL 查询:
select object_name,object_type,status,created from user_objects where status <> 'VALID' and object_name in ('OMS_GET_IS_LAST','OMS_INIT_EXPENSE_STAFF','OMS_JITI_ALERT_EMAIL');
结果如图,正确查到失效的对象。