ORACLE中如何编译失效的对象

本文介绍了一种检查数据库中无效对象的方法,并提供了生成无效对象列表及针对不同类型的数据库对象进行编译的具体SQL语句。

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

在日常数据库维护过程中,我们需要及时检查数据库中存在的失效对象信息,对于存在异常的对象需要重新编译,各种对象类型可参见如下编译方法:

检查生成无效对象的名称,并存放object.lst文件中

pool objects.lst                                                                  
set pagesize500                                                                   
set linesize 100                                                                  
                                                                                  
select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version     
from dba_registry                                                                 
order by comp_name;                                                               
                                                                                  
select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type  
from dba_objects                                                                  
where status='INVALID' order by owner,object_type;                                
                                                                                  
select owner,object_type,count(*)                                                 
from dba_objects                                                                  
where status='INVALID'                                                            
group by owner,object_type order by owner,object_type ;                           
                                                                                  

spool off        

生成后关闭sqlplus的spool记录

各个对象的编译方法分别如下:                                                                                                                                               

alter package <schema name>.<package_name> compile;                               
alter package <schema name>.<package_name> compile body;                          
alter view <schema name>.<view_name> compile;                                     
alter trigger <schema).<trigger_name> compile;     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值