每次数据库升级之后,都需要对库中的对象进行重新编译一下。下面整理出了一个脚本,只需要执行一下就能批量编译这些失效的对象。需要注意的是:因权限问题,最好是选择sys用户来执行这个脚本,如是plsql developer中执行,记得选择“ALL USERS”

[oracle@oracle~]$catcheck_compile.sqlsetheadingoff;setfeedbackoff;setechooff;Setlines999;Spoolrun_invalid.sqlselect'alter'||decode(object_type,'VIEW','VIEW','TRIGGER','TRIGGER','PROCEDURE','PROCEDURE','FOUNCTION','FUNCTION','PACKAGE','PACKAGE','PACKAGEBODY','PACKAGE','MATERIALIZEDVIEW')||''||owner||'.'||object_name||'compile'||';'fromdba_objectswherestatuslike'INV%';spooloff;setheadingon;setfeedbackon;setechoon;@run_invalid.sql