批量编译无效对象

Posted ClarkYu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量编译无效对象相关的知识,希望对你有一定的参考价值。

sqlplus "/as sysdba"
@$ORACLE_HOME\RDBMS\ADMIN\utlrp.sql; this script will compile all invalid objects in database

 

自己编写的一个脚本

$ more check.sql
set head off
set pagesize 2000
spool comp.sql
select ‘alter ‘||decode(object_type, ‘VIEW‘, ‘VIEW‘,‘TRIGGER‘,‘TRIGGER‘,
       ‘PROCEDURE‘, ‘PROCEDURE‘, ‘FOUNCTION‘,‘FUNCTION‘,
       ‘PACKAGE‘,‘PACKAGE‘, ‘PACKAGE BODY‘, ‘PACKAGE‘, ‘MATERIALIZED VIEW‘) 
       ||‘ ‘||owner||‘.‘||object_name||‘ compile ‘||
       decode(object_type, ‘PACKAGE BODY‘, ‘ BODY‘)||‘;‘ 
from dba_objects
where status like ‘INV%‘;   
spool off   


在ORACLE_HOME下创建check.sql
sqlplus / as sysdba
@check.sql

@comp.sql

以上是关于批量编译无效对象的主要内容,如果未能解决你的问题,请参考以下文章

重新编译PLSQL中无效对象或指定对象

Oracle 无效对象查询,编译无效对象

Oracle 无效对象查询,编译无效对象

用于检查 Oracle 中的无效对象并构建脚本以编译无效对象的脚本

DataGrip - 编译无效对象 (Oracle)

sql 编译无效对象