暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORA-04063: package body “SYS.DBMS_SQLTUNE_INTERNAL” and compile body raise ORA-00904: “XMLAGG”

张维照 2019-05-31
1420

问题描述

接手一套老库10.2.0.5 不知道以前做了什么,DBMS_SQLTUNE 包一直有无效对象不可用,今天手动建sql profile时,捡起来解决一下。下面是调用DBMS_SQLTUNE.IMPORT_SQL_PROFILE 时报的错误:

第 1 行出现错误:
ORA-04063: package body “SYS.DBMS_SQLTUNE_INTERNAL” 有错误
ORA-06508: PL/SQL: 无法找到正在调用 : “SYS.DBMS_SQLTUNE_INTERNAL” 的程序单元
ORA-06512: 在 “SYS.DBMS_SQLTUNE”, line 5664
ORA-06512: 在 line 55

Solution:

SQL>  alter PACKAGE  sys.DBMS_SQLTUNE_INTERNAL compile body;
警告: 更改的包体带有编译错误。

SQL> show error
PACKAGE BODY SYS.DBMS_SQLTUNE_INTERNAL 出现错误:

LINE/COL ERROR
-------- -----------------------------------------------------------------
8351/7   PL/SQL: SQL Statement ignored
8362/29  PL/SQL: ORA-00904: "XMLAGG": 标识符无效
SQL> @o %.XMLAGG

未选定行

# 找个正常同版本的库确认
SQL> @o %.XMLAGG
owner      object_name    object_type        status           OID      D_OID CREATED           LAST_DDL_TIME
---------- -------------- ------------------ --------- ---------- ---------- ----------------- -----------------
PUBLIC     XMLAGG         SYNONYM            VALID           5988            20101013 10:12:07 20101013 10:12:07

SQL> @syn2 xmlagg
OWNER          SYNONYM_NAME            TABLE_OWNER     TABLE_NAME       DB_LINK
-------------- ----------------------- --------------- ---------------- -------
PUBLIC         XMLAGG                  SYS             SYS_IXMLAGG      

SQL> @o SYS_IXMLAGG
owner     object_name     object_type        status           OID      D_OID CREATED           LAST_DDL_TIME
--------- --------------- ------------------ --------- ---------- ---------- ----------------- -----------------
SYS       SYS_IXMLAGG     FUNCTION           VALID           5984            20101013 10:12:07 20101013 10:12:07


专家解答

Note:
可以看到问题库DBMS_SQLTUNE_INTERNAL body 编译出错是因为少了XMLAGG同义词。

SQL> create public synonym XMLAGG for SYS_IXMLAGG;
同义词已创建。

SQL> alter PACKAGE  sys.DBMS_SQLTUNE_INTERNAL compile body;
程序包体已变更。

SQL> show error
没有错误


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论