用户在使用exp对数据库的表做备份时,出现ORA-00932报错,如下:
EXP-00056: ORACLE error 932 encountered
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR
EXP-00000: Export terminated unsuccessfully
数据库版本:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit
在Oracle支持网站上,可以找到对应的问题原因及解决方法,参考文档 ID 339938.1
问题出现版本:
oracle 10.1.0.2 到10.2.0.3
问题现象:
使用exp工具对数据库进行全库导出时会中断退出,并报EXP-00056,ORA-00932错误
问题原因:
一种可能的原因是数据库最近运行过$ORACLE_HOME/rdbms/admin/catmeta.sql脚本(也可能会有其他原因)
在数据库的数据字典中有一些SYS.KU$_开头的对象状态为INVALID,如下:(在本次用户的环境中,没有SYS.KU$_开头的INVALID对象。其导致原因可能与Oracle支持网站的不同)
-- invalid objects:
SET lines 120 pages 2000
COL status FOR a9
COL object_type FOR a20;
COL owner.object FOR a50
SELECT status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
FROM dba_objects
WHERE status != 'VALID' AND object_name NOT LIKE 'BIN$%'
ORDER BY 4,2;
STATUS OBJECT_ID OBJECT_TYPE OWNER.OBJECT
--------- ---------- --------------- --------------------------------
INVALID 7105 PACKAGE BODY SYS.DBMS_METADATA
INVALID 6683 VIEW SYS.KU$_10_1_COMMENT_VIEW
INVALID 6788 VIEW SYS.KU$_10_1_IND_STATS_VIEW
INVALID 6778 VIEW SYS.KU$_10_1_PIND_STATS_VIEW
INVALID 6752 VIEW SYS.KU$_10_1_PTAB_STATS_VIEW
INVALID 6770 VIEW SYS.KU$_10_1_SPIND_STATS_VIEW
INVALID 6748 VIEW SYS.KU$_10_1_TAB_ONLY_STATS_VIEW
... (etc)
在SQL×PLUS中查询sys.ku$_xmlschema_view同样会返回ORA-932错误
SET lines 200 pages 2000
COL url FOR a60 WRA
SELECT url, local, stripped_val
FROM sys.ku$_xmlschema_view;
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR
解决方法:
可能由于不同的缘故进行编译时,XDB的对象不能被catproc.sql脚本创建。catproc.sql脚本在执行时会调用catmeta.sql,而catmeta.sql中含有篡改过的对象导致XDB对象不可用。实际XDB需要的对象是通过脚本catmetx.sql定义的
方法1:
使用SYS用户运行下面两个脚本:
sqlplus /nolog
SQL> connect / as sysdba
SQL> @?/rdbms/admin/catmetx.sql
SQL> @?/rdbms/admin/utlrp.sql
SQL> exit
方法2:
使用EXPDP导出数据
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23850820/viewspace-1448023/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23850820/viewspace-1448023/