原因:oracle版本不一样
执行
C:/>EXP plx/plx@orcl FILE=c:/plx.dmp TABLES=(s,sc,c)
结果报错
Export: Release 11.1.0.6.0 – Production on 星期日 7月 26 12:42:19 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 UTF8 NCHAR 字符集
服务器使用 UTF8 字符集 (可能的字符集转换)
即将导出指定的表通过常规路径…
. . 正在导出表 S
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: “MAXSIZE”: invalid identifier
. . 正在导出表 SC
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: no statement parsed
. . 正在导出表 C
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: “MAXSIZE”: invalid identifier
EXP-00008: 遇到 ORACLE 错误 942
ORA-00942: table or view does not exist
EXP-00024: 未安装导出视图, 请通知您的 DBA
EXP-00000: 导出终止失败
很诡异,从来没见过的错误,怎么会报没有字段的错误呢。
于是Google(在技术资料方面BAIDU就是垃圾),
有个哥们说是数据字典丢了,我很诧异,我前几天在Oracle 10g Client下导出过了,怎么会丢失数据字典,还是半信半疑的执行了。
在服务器上执行
oracle@linux-lrn6:~> sqlplus sys/sys@orcl as sysdba
SQL >@/opt/oracle/product/10.2/db_1/rdbms/admin/catexp.sql
以重建数据字典。
建好了后,再次执行导出,还是不行。
但是我在服务器上执行同样的语句就可以。
于是我意识到可能是EXP版本问题,于是测试。
在一台11g的机器上运行一条SQL 检 测那个MAXSIZE是个什么列。
SQL > select distinct table_name from user_col_comments where column_name=’MAXSIZE’;
TABLE_NAME
————————————————————
EXU9STOU
EXU9PLB
EXU9PDSU
EXU9LBCPU
EXU9PDS
EXU9IXCP
CPOOL$
EXU9TBCPU
EXU9TBCP
EXU9STO
EXU9IXCPU
TABLE_NAME
————————————————————
DBA_CPOOL_INFO
EXU9TBS
EXU9PLBU
EXU9LBCP
然后在10g的服务器上运行同样的语句,没有返回行。可见MAXSIZE是11g在数据字典中新加的项,10g是没有的。
#10g
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL > desc sys.exu9tbs
名 称 是否为空? 类型
—————————————– ——– —————————-
ID NOT NULL NUMBER
OWNER CHAR(6)
NAME NOT NULL VARCHAR2(30)
ISONLINE VARCHAR2(7)
CONTENT VARCHAR2(9)
INIEXT NOT NULL NUMBER
SEXT NOT NULL NUMBER
PCTINC NOT NULL NUMBER
MINEXT NOT NULL NUMBER
MAXEXT NOT NULL NUMBER
MINLEN NUMBER
DEFLOG NOT NULL NUMBER
EXT_MGT NOT NULL NUMBER
ALLOC_TYPE NOT NULL NUMBER
BLOCKSIZE NOT NULL NUMBER
#11g
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 – Production
With the Partitioning, OLAP and Real Application Testing options
SQL > desc sys.exu9tbs
名 称 是否为空? 类型
—————————————– ——– ————————-
ID NOT NULL NUMBER
OWNER CHAR(6)
NAME NOT NULL VARCHAR2(30)
ISONLINE VARCHAR2(7)
CONTENT VARCHAR2(9)
INIEXT NOT NULL NUMBER
SEXT NOT NULL NUMBER
PCTINC NOT NULL NUMBER
MINEXT NOT NULL NUMBER
MAXEXT NOT NULL NUMBER
MINLEN NUMBER
DEFLOG NOT NULL NUMBER
EXT_MGT NOT NULL NUMBER
ALLOC_TYPE NOT NULL NUMBER
BLOCKSIZE NOT NULL NUMBER
MAXSIZE NUMBER ———>问题在这里
所以,导入导出数据的时候,还是尽可能的版本统一,10g导10g 的,11g导11g的,免得不必要的麻烦。