今天需要对一个数据库中的用户导出. 而且由于客户的要求只能使用exp工具操作.
结果遇到了下述错误.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
Export done in UTF8 character set and AL16UTF16 NCHAR character set
......
EXP-00056: ORACLE error 932 encountered
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR
EXP-00000: Export terminated unsuccessfully.
于是使用10046和errorstack 来设置trace.
alter system set events '10046 trace name context forever,level 12';
alter system set events '932 trace name errorstack';
再次执行exp, 出现错误后,检查trace 文件,发现错误和
SELECT URL, LOCAL, STRIPPED_VAL FROM SYS.KU$_XMLSCHEMA_VIEW WHERE OWNER_NAME = :OWNER
有关.
在sqlplus中执行SELECT URL, LOCAL, STRIPPED_VAL FROM SYS.KU$_XMLSCHEMA_VIEW返回同样的错误.
查阅metalink之后确定与XDB有关,由于数据库没有使用XDB,所以参考Doc ID 1292089.1,和1375280.1删除了XDB
@?/rdbms/admin/catnoqm.sql
@?/rdbms/admin/catmeta.sql
drop view ALL_XML_SCHEMAS;
drop view ALL_XML_SCHEMAS2;
@?/rdbms/admin/utlrp.sql
检查sys中无非法对象,
select comp_name,comp_id, status, version from dba_registry;
检查所有组件状态正常.
再次执行exp,正常导出.