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

故障分析:ORA-00904:invalid column name

原创 盖国强 2019-05-08
667

问题描述

今天在用户现场接触一个8i的数据库,好久未接触,差点就忘了SVRMGRL工具了。

客户数据库在导出时一直存在一个错误,问题出现在导出同义词阶段:

. exporting synonyms
EXP-00008: ORACLE error 904 encountered
ORA-00904: invalid column name
EXP-00000: Export terminated unsuccessfully


专家解答

使用DBMS_SYSTEM跟踪一下导出,发现最后出错停留在以下SQL上:

SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM), DBMS_JAVA.LONGNAME(SYNTAB), TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID  FROM SYS.EXU8SYN WHERE SYNOWNID=:1 ORDER BY SYNTIME

手工执行这个脚本出现同样的错误:

SQL> SELECT SYNNAM,
  2         DBMS_JAVA.LONGNAME(SYNNAM),
  3         DBMS_JAVA.LONGNAME(SYNTAB),
  4         TABOWN,
  5         TABNODE,
  6         PUBLIC$,
  7         SYNOWN,
  8         SYNOWNID
  9    FROM SYS.EXU8SYN
 10  /
 
SELECT SYNNAM,
       DBMS_JAVA.LONGNAME(SYNNAM),
       DBMS_JAVA.LONGNAME(SYNTAB),
       TABOWN,
       TABNODE,
       PUBLIC$,
       SYNOWN,
       SYNOWNID
  FROM SYS.EXU8SYN
 
ORA-00904: invalid column name

发现又是java对象的问题:

SQL> select owner, status, object_type, object_name from all_objects
  2  where object_name like'%DBMS_JAVA%';
 
OWNER                          STATUS  OBJECT_TYPE        OBJECT_NAME
------------------------------ ------- ------------------ ------------------------------
SYS                            VALID   PACKAGE            DBMS_JAVA_TEST
SYS                            VALID   PACKAGE BODY       DBMS_JAVA_TEST
PUBLIC                         VALID   SYNONYM            DBMS_JAVA_TEST

Metalink上可以找到大量相关的文档记录,解决方案是,要么完全无误的安装JAVA对象,要么彻底移除,移除可以运行rmjvm.sql脚本,该脚本位于$ORACLE_HOME/javavm/install/rmjvm.sql 

If Java is enabled, ensure that both DBMS_JAVA synonyms and packages are created and valid. 
The following script can be used to create the required packages, 
"$ORACLE_HOME/javavm/install/initdbj.sql". This will need to be run as SYSDBA.

If Java is disabled, run "$ORACLE_HOME/javavm/install/rmjvm.sql" to remove Java related 
objects. Do not just drop the synonym.


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

评论