Oracle搜索编译有问题或者失效的存储过程,包,函数等

  Oracle 9i中,有的时候表增加或者删除字段,导致引用其的存储过程,函数,包等对象编译报错,需要重新手工编译一下才行。如何检查功能上线后是否有失效的对象,可以通过如下SQL实现:

 

select * 
 from user_objects 
where status <> 'VALID';

 

例子:从PL/SQL工具中看到如图三个存储过程有问题,我们用如上的SQL验证一下(PS:因为无效的存储过程不仅仅是这三个,为了缩小记录数,where条件中限制只查这几个存储过程是否失效)

 

Oracle搜索编译有问题或者失效的存储过程,包,函数等_第1张图片

 

 

使用我们的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');

 

结果如图,正确查到失效的对象。

 
Oracle搜索编译有问题或者失效的存储过程,包,函数等_第2张图片
 

 

你可能感兴趣的:(oracle)