编译无效对象,可以采用全局编译和采用工具或命令进行指定对应编译。
1. 采用全局编译
采用全局编译,一般在数据库版本升级或降级时执行。
执行utlrp.sql文件,前提是:
(1) 使用sqlplus 登录运行
(2) 使用sysdba权限登录
(3) 确保在运行脚本过程中 没有别的 ddl 操作
$ sqlplus / as sysdba
SQL> @utlrp.sql
2.采用toad,plsq工具进行编译无效对应
好处:可以指定单个用户的无效对应进行编译,无需编译整个数据库
3.采用命令行方式
SQL> alter procedure p_test compile;
SQL> alter type STRCAT_test compile;
SQL> alter function to_quarter compile;