每次数据库升级之后,都需要对库中的对象进行重新编译一下。下面整理出了一个脚本,只需要执行一下就能批量编译这些失效的对象。需要注意的是:因权限问题,最好是选择sys用户来执行这个脚本,如是plsql developer中执行,记得选择“ALL USERS”
[oracle@oracle~]$catcheck_compile.sql setheadingoff; setFeedbackoff; setechooff; Setlines999; Spoolrun_invalid.sql select'alter'||decode(object_type,'VIEW','TRIGGER','PROCEDURE','FOUNCTION','FUNCTION','PACKAGE','PACKAGEBODY','MATERIALIZEDVIEW') ||''||owner||'.'||object_name||'compile'||';' fromdba_objects wherestatuslike'INV%'; spooloff; setheadingon; setFeedbackon; setechoon; @run_invalid.sql