exp/imp 操作过程中遇到932错误

今天做了一个简单的用户模式的exp导出,结果出了exp-00056错误和ora-00932错误。第一次实验,查了一下,解决的办法很简单,我慢慢说下思路。

我是想导出一个用户模式的信息,样的话会陆续导出了表的一些同义词,这个用户的视图,生么触发器,过程等等等跟这个用户相关的信息。但是出现了这个错误:

[oracle@oracle02 ~]$ exp userid=test/test file=test.dmp
buffer=1024 owner=test

Export: Release 10.2.0.1.0 - Production on Tue Nov 28 15:09:42 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user TEST
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user TEST
About to export TEST's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
EXP-00056: ORACLE error 932 encountered
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR
EXP-00000: Export terminated unsuccessfully

原因:数据字典中有存在一些无效KU$_视图;
SQL> select * from sys.ku$_xmlschema_view;
select * from sys.ku$_xmlschema_view
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR

解决办法:
1.执行对象视图定义脚本 $ORACLE_HOME/rdbms/admin/catmetx.sql
SQL>
@?/rdbms/admin/catmetx.sql

Package altered.
Index altered.
View created.
Grant succeeded.
View created.
Grant succeeded.
Procedure created.
System altered.
System altered.
System altered.
PL/SQL procedure successfully completed.
Procedure dropped.
------开始我用一个普通用户执行的这个,出现了一些错误,报什么某个表不存在,之后换了sys用户执行的,执行完了就一切正常了。。

2.执行重新编译无效对象脚本 $ORACLE_HOME/rdbms/admin/utlrp.sql
SQL> @?/rdbms/admin/utlrp.sql
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
验证一下程序
SQL> select * from ku$_xmlschema_view;

V V OWNER_NUM OWNER_NAME URL
- - ---------- ------------------------------ ---------------
1 0 46 MDSYS http://www.opengis.net/gml/geometry.xsd
1 0 46 MDSYS http://www.w3.org/1999/xlink/xlinks.xsd
1 0 46 MDSYS http://www.opengis.net/gml/feature.xsd
重新执行导出程序exp,一些正常。

Applies
to: 
Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 10.2.0.1
Oracle Server - Personal Edition - Version: 10.1.0.2 to 10.2.0.1
Oracle Server - Standard Edition - Version: 10.1.0.2 to 10.2.0.1
This problem can occur on any platform.

Symptoms
A full database export from a Oracle10g database aborts with:

... 
. exporting cluster definitions 
EXP-00056: ORACLE error 932 encountered 
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR 
EXP-00056: ORACLE error 932 encountered 
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR 
EXP-00000: Export terminated unsuccessfully 
EXP-00000: Export terminated unsuccessfully 

If export was started with SYS schema, a table level export may also fail with:

...
Current user changed to TEST 
. . exporting table DOC_ARCHIVE 16 rows exported 
Current user changed to SYS 
EXP-00011: SYS.; does not exist 
Export terminated successfully with warnings.
Cause
One possible cause (note there might be others):

Script $ORACLE_HOME/rdbms/admin/catmeta.sql has been run recently.

There are several invalid SYS.KU$_% views in the dictionary:

-- 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) 

A query in SQL*Plus on sys.ku$_xmlschema_view also fails with 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 
Solution
For reasons having to do with compatibility, the XDB objects cannot be created by the catproc.sql script. The script catproc.sql therefore calls the catmeta.sql script, which contains fake object views for XDB objects. 
The real object views are defined in the catmetx.sql script (this script is invoked by catxdbv.sql which is invoked by catqm.sql).

Solution #1
Run following scripts while connected as SYS user:
> sqlplus /nolog

SQL> connect / as sysdba 
SQL> @?/rdbms/admin/catmetx.sql 
SQL> @?/rdbms/admin/utlrp.sql 

SQL> exit

Afterwards, re-run the export.

or:

Solution #2
Run the export with the Export DataPump client. E.g.:

> expdp system/manager directory=my_dir \
dumpfile=expdp_full.dmp logfile=expdp_full.log full=y
References
Bug 4668539 - (BUG)ORA-932 WHILE EXPORT
Bug 4685068 - EXPORT IS FAILING WITH ERROR ORA-00932 ON 10.2

Keywords
CATPROC.SQL ; INVALID~OBJECT ; BLOB ; XDB ; CLOB ; FULL~DATABASE~EXPORT ; DBMS_METADATA ;  

上面的是 10.2.0.1的文档,标准的解决办法。

下面是转自晶晶小妹的一篇文章。或许以后能用到:

一个简单的EXP-00056:

今天在测试机上作导出,发现了如下错误:
D:> exp scott/ifclwx
Export: Release 10.2.0.1.0 - Production on 星期三 4月 2 09:52:08 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
EXP-00056: 遇到 ORACLE 错误 6550
ORA-06550: 第 1 行, 第 41 列:
PLS-00302: 必须说明 'SET_NO_OUTLINES' 组件
ORA-06550: 第 1 行, 第 15 列:
PL/SQL: Statement ignored
EXP-00000: 导出终止失败

EXP-00056吗,这是一个很普通的错误,通常是由于EXP程序在执行某条命令错误所造成的,可以通过自己手动执行如下脚本解决,

@?/rdbms/admin/catmeta.sql      
 ——注意跟我遇到的错误不同,执行的脚本也不同。

@?/rdbms/admin/catexp.sql

这种问题一般在升级过数据库后有可能出现,我以前也遇到过一次。于是,按照惯性思维,先执行第一个脚本,再EXP,错误依旧,再执行第二个脚本,同样不行。这可怎么办,忽然注意到EXP第一行显示的信息:Export: Release 10.2.0.1.0 - Production 。
数据库的版本是9i,而EXP确是10G,测试机上装了两个数据库,先装9i,后装的10G,PATH环境参数被设置为相关10G的,执行EXP时,并没有将环境参数改为9i的,设置一下PATH参数,或者进入到9i的文件夹下:cd Eracleora92in
,然后在执行EXP:
Eracleora92in>exp scott/ifclwx
一切顺利了。
如果你的测试机中9i和10g并存,就要注意这个问题了。

时间: 2024-10-28 20:22:18

exp/imp 操作过程中遇到932错误的相关文章

探索Oracle之 EXP/IMP过程中的字符集问题

1. 问题描述:        数据库之间的数据迁移是一个很常见的作业,EXP/IMP工具是一个常用的数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用.但在实际操作过程中,涉及到源数据库,客户端,目标数据库三方面的字符集问题.操作人员对三者之间的字符集转换过程不了解,而冒然使用EXP/IMP命令,往往在迁移过程中报错终止,或是在没有报错的情况下成功导入,但其背后却存在隐患,在查询时经常显示乱码.   2.解决方法        2.1 源端数据库(1)→EXP客户端(

使用exp/imp来移动表空间到另一个数据库中的例子

exp/imp还有一个TRANSPORT_TABLESPACE的功能,可以传输整个表空间的数据,就是把一个数据库上的数据文件加到另外一个数据库中,而不是把数据导出成Dmp文件.用这个传输还有一定的限制: 关于传输表空间有一些规则,即: ·源数据库和目标数据库必须运行在相同的硬件平台上. ·源数据库与目标数据库必须使用相同的字符集. ·源数据库与目标数据库一定要有相同大小的数据块 ·目标数据库不能有与迁移表空间同名的表空间 ·SYS的对象不能迁移 ·必须传输自包含的对象集 ·有一些对象,如物化视图

【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

[exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中   1.1  BLOG文档结构图     1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中(重点,2种方法)? ② 从dmp文件可以获取到哪些信息?如何从dmp文件获取到dmp文件的字符集(重点,N种方法)? ③

解决Oracle中Exp/Imp大量数据处理问题

Oracle的exp/imp是许多用户经常使用的两个工具. 它们常被用来做数据库的逻辑备份,数据库重组和数据转移等工作. 先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB. 而现时多数操作系统为32位, 其文件系统允许的最大文件为2GB. 这样显然不能由文件系统存放exp产生的数据. 这是问题之一. 另一个问题

exp/imp碰到的两则问题处理(ORA-00904和the objects were exported by ABC not by you)

最近负责搭建某系统的用户环境,其中涉及从测试环境导入数据,由于受客观因素制约,不能使用传输表空间方法同步,因此需要用imp/exp或数据泵的方法,这里采用的是imp/exp.下面记录操作过程中碰到的问题. 问题1:exp导出时ORA-00904: "IFREEPOOL": invalid identifier和"OLEVEL": invalid identifier错误 第一次操作时: 用于执行imp/exp的版本是:10.2.0.4 用于导出的数据库版本是:10.

使用exp/imp导入oracle 11g数据到oracle 9i

现在有个需求,需要使用exp/imp导入11g的数据库数据到9i中,解决这个问题一般来说想到三种方法思路,一个个尝试(其实从高版本服务端支持低版本客户端的原则,可以大概的猜测出使用9i的客户端处理该问题) 方法1:导出导入都使用11g客户端 --11g客户端导出 [oracle@xifenfei ~]$ exp chf/xifenfei file=/tmp/t_xifenfei.dmp >log=/tmp/t_xifenfei.log tables=chf.t_xifenfei Export:

Oracle exp/imp命令快速导入导出数据

用exp命令导出表结构,不导出表数据.只需在命令行里加一个参数rows=n即可.表示不导出表数据. exp username/pwd@sid file=d:databak.dmp owner=(user)rows=n ******************************************************************************************************************** oracle exp/imp命令详解 E:>ex

EXP/IMP 学习(四)

1.4  常见问题1.  字符集问题ORACLE  多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示, 货币形式,排序方式和  CHAR,VARCHAR2,C LOB,LONG  字段的数据的显示等有效. ORACLE  的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语 言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规则.ORACLE 字符集设定,分为数据库字符集和客户端字符集环境设置.在数据库端,字符集在创建数据库

浅谈exp/imp(下)

你可能 不了解的dump文件 在工作中,dump文件对于dba而言是再平常不过的文件了.不过因为dump文件是二进制文件,所以大家可能在平时使用中也不太关注,不过尽管如此,在导入dump文件的时候还是有很多的细节和技巧值得注意,可以避免一些不必要的问题. [荆波1] 如何查看dump文件的一些基本信息 当你拿到一个dump文件的时候,不能盲目导入,我们可以基于当前的dump文件作一些基本的检查. 比如我们可以查到dump文件导出的版本,时间,导出的用户. 尽管dump文件是二进制文件,但是我们还