问题描述
今天在用户现场接触一个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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。