oracle 由32位迁移到64位的问题
发布日期:2025-04-29 14:02:53 浏览次数:16 分类:精选文章

本文共 1155 字,大约阅读时间需要 3 分钟。

顺利挂载数据库之后,通过应用程序或第三方工具(如PLSQL Developer)连接时可能会出现ORA-06553: PLS-801: internal error [56319] 等错误。以下是解决方法:

  • 执行以下SQL命令:

    SQL> shutdown immediate

    这将立即关闭数据库。

  • 接着执行升级启动:

    SQL> startup upgrade

    这将启动数据库并进行升级。

  • 启用回显:

    SQL> set echo on
  • 执行UTLRP脚本:

    SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql

    这将打开UTLRP脚本。

  • 检查DBMS_STANDARD包的状态:

    SQL> select status from dba_objects

    输入以下参数:

    2 where object_name='DBMS_STANDARD'
    3 and object_type='PACKAGE'
    4 and owner='SYS';

    如果返回结果为'INVALID',说明包编译失败。

  • 如果包状态为'INVALID',重新编译:

    SQL> alter package dbms_standard compile;
  • 如果包状态为'VALID',无需编译。继续执行以下操作:

    SQL> select object_name from dba_objects where status='INVALID';

    如果返回结果为空,说明问题已解决。

  • 如果UTLRP脚本执行失败,按照以下步骤操作:

    $ cd /u01/app/oracle/product/102/db_1/olap/admin/

    执行以下脚本:

    SQL> @?/olap/admin/catnoamd.sql
    SQL> @?/olap/admin/catnoaps.sql
    SQL> @?/olap/admin/catnoxoq.sql
    SQL> @?/olap/admin/olapidrp.plb
    SQL> @?/olap/admin/olap.sql SYSAUX TEMP;

    再次执行UTLRP脚本:

    SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

    最后,检查包状态:

    SQL> select object_name from dba_objects where status='INVALID';

    此时应返回空结果。

  • 关闭回显:

    SQL> set echo off

    重启数据库:

    SQL> shutdown immediate;
    SQL> startup;
  • 通过以上步骤,应该能够解决ORA-06553: PLS-801: internal error [56319] 错误问题。

    上一篇:oracle 监听器的工作原理
    下一篇:oracle 用户与锁

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2026年06月06日 21时59分21秒