• Script to compile invalid objects in DB


    REM: Script to compile invalid objects in DB after refreshing  
    REM:  
    REM:*****************************************  
    REM:  
    REM: NOTE: PLEASE TEST THIS SCRIPT BEFORE USE.  
    REM: Author will not be responsible for any damage that may be cause by this script.  
    REM:*****************************************  
      
    set pagesize 0  
    set feedback off  
    set trimspool on  
    prompt  
    prompt Run the script as sysdba otherwise invalid objects will remain (ORA-01031 error)  
    prompt  
    prompt Run the script several times. It only takes long the first time  
    prompt  
    prompt check the progress of compilation by issueing from another session  
    prompt select count(*) "invalid" from dba_objects where status <> 'VALID';  
    prompt  
    prompt hit <enter> to continue  
    pause  
    spool compile.lis  
    select 'alter '||object_type||' '||owner||'."'||object_name||'" compile;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type not in ('PACKAGE BODY','TYPE BODY','UNDEFINED','JAVA CLASS','SYNONYM')  
    union  
    select 'alter package '||owner||'.'||object_name||' compile body;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type='PACKAGE BODY'  
    union  
    select 'alter type '||owner||'.'||object_name||' compile body;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type='TYPE BODY'  
    union  
    select 'alter materialized view '||owner||'.'||object_name||' compile;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type='UNDEFINED'  
    union  
    select 'alter java class '||owner||'."'||object_name||'" resolve;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type='JAVA CLASS'  
    union  
    select 'alter synonym '||owner||'.'||object_name||' compile;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type='SYNONYM'  
    and owner<>'PUBLIC'  
    union  
    select 'alter public synonym '||object_name||' compile;'  
    from dba_objects  
    where status<>'VALID'  
    and object_type='SYNONYM'  
    and owner='PUBLIC';  
    spool off  
    set feedback on   
  • 相关阅读:
    技术杂谈
    常用的shell命令
    Linux网络篇
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    asp.net远程调用WebService的两种方法
    使用C#和Java发送邮件(转载)
    转载:在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的
    也谈Asp.net 中的身份验证(转载)
    (转)32位win7用尽4g内存的几种解决方式
    64位WIN7下plsql报 ORA-12154:TNS:无法解析指定的连接标志符 错误的解决方法
  • 原文地址:https://www.cnblogs.com/toowang/p/3665827.html
Copyright © 2020-2023  润新知