oracle+查询失效包,Oracle搜索编译有有关问题或者失效的存储过程,包,函数等...

在Oracle9i中,当表结构变化导致依赖的对象如存储过程、函数、包失效时,需要手动重新编译。通过SQL查询`SELECT * FROM USER_OBJECTS WHERE STATUS <> 'VALID';`可以检查失效对象。本文以OMS_GET_IS_LAST、OMS_INIT_EXPENSE_STAFF、OMS_JITI_ALERT_EMAIL为例,演示如何验证并解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

select *

from user_objects

where status <> 'VALID';

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

171211854.png

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

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

171211855.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值