关于oracle 11g客户端导出10g库的问题【转】
今天在本机装上11g的客户端想体验一把,没想到第一次exp就出问题了:
C:\Documents and Settings>exptest/test@testtables=test indexes=n constraints=n statistics=none feedback=10000 file=d:\test.dmp log=d:\test.log
Export: Release 11.1.0.6.0 - Production on 星期六 10月 10 16:04:27 2009
Copyright (c) 1982, 2007,Oracle. All rights reserved.
连接到: Oracle Database10gEnterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表的索引
注: 将不导出表的约束条件
即将导出指定的表通过常规路径...
. . 正在导出表 test
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
. . 正在导出表 DKSXB
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": 标识符无效
. . 正在导出表 DKXXB
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
导出成功终止, 但出现警告。
C:\Documents and Settings>
网上找了很多也没找到,最后发现数据库在其他机器上用oracle 10g客户端导出就没问题。
有人说是数据字典丢了,于是在服务器上执行
[oracle@localhost ~]$ sqlplus/nolog
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的,免得不必要的麻烦。