操作步骤:源数据库是64位oracle11gR2软件,通过rman完整备份数据库(包括参数文件、数据文件、控制文件、日志文件) 恢复到异机32位oracle11gR2同名数据库中。
错误现象:ORA-06553:PLS-801 内部错误
错误原因:用64位系统上的备份片将数据库还原到32位系统中所产生,反过来也会产生此错误。
解决方案:运行脚本用32位系统重新编译一下内核参数即可
具体步骤:SQL> conn / as sysdba;
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> @?/rdbms/admin/utlirp.sql
SQL> @?/rdbms/admin/utlrp.sql
SQL> shutdown immediate;
SQL> startup;
其中:
utlirp.sql的作用是把相关内容全部在32bit平台下编译一遍.
utlrp.sql的作用是编译所有失效对象.
然后再重新连接,就不会报错了。
SQL> conn xxx/xxx
Connected.
--End--