今日导数据遇到一错误,记得之前也遇到过,但是没做记录,在此记一记,便于加深印象。
使用exp导数据的时候,在本地连远程DB服务器执行如下语句:exp **/**@192.168.90.125/center file=....
出现如下信息:连接到: OracleDatabase10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
Withthe Partitioning, OLAPandData Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR字符集
即将导出指定的表通过常规路径...
. . 正在导出表 TB_SYS_ACTION
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": invalid identifier
. . 正在导出表 TB_SYS_ASSEMBLYINFO
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: nostatement parsed
. . 正在导出表 TB_SYS_BILLDEFINE
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": invalid identifier
. . 正在导出表 TB_SYS_BILLQRYEXT
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: nostatement parsed
. . 正在导出表 TB_SYS_BILLQRYSIM
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": invalid identifier
. . 正在导出表 TB_SYS_COLUMNDISPLAYER
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: nostatement parsed
. . 正在导出表 TB_SYS_DBOBJMODIFYLOG
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": invalid identifier
. . 正在导出表 TB_SYS_DDFLOWCONTROL
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: nostatement parsed
. . 正在导出表 TB_SYS_DICT
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": invalid identifier
。。。。。。。。
其实,此报错信息是因为本地使用的exp导出工具的版本与db服务器端exp版本不一致。
本地用的exp是11g版本,而db服务器端exp是10g版本。
由于Oracle的imp/exp组件的一个操作原则就是向下兼容,且有一些规则:
规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器。
规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容)。
规则4:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本Oracle 8。
于是在db服务器端进行exp操作,然后在本地imp操作,结果导入成功。
为弄清楚为什么提示 ORA-00904: "MAXSIZE": invalid identifier,可在10g和11g版本中分别执行SQL >descsys.exu9tbs
结果如下:ConnectedtoOracleDatabase10g Enterprise Edition Release 10.2.0.1.0
Connected ascenter
SQL> descsys.exu9tbs
NameType NullableDefaultComments
---------- ------------ -------- ------- --------
ID NUMBER
OWNER CHAR(6) Y
NAMEVARCHAR2(30)
ISONLINE VARCHAR2(7) Y
CONTENT VARCHAR2(9) Y
INIEXT NUMBER
SEXT NUMBER
PCTINC NUMBER
MINEXT NUMBER
MAXEXT NUMBER
MINLEN NUMBER Y
DEFLOG NUMBER
EXT_MGT NUMBER
ALLOC_TYPE NUMBER
BLOCKSIZE NUMBER
ConnectedtoOracleDatabase11g Enterprise Edition Release 11.2.0.3.0
Connected ashbtest
SQL> descsys.exu9tbs
NameType NullableDefaultComments
---------- ------------ -------- ------- --------
ID NUMBER
OWNER CHAR(6) Y
NAMEVARCHAR2(30)
ISONLINE VARCHAR2(7) Y
CONTENT VARCHAR2(9) Y
INIEXT NUMBER
SEXT NUMBER
PCTINC NUMBER
MINEXT NUMBER
MAXEXT NUMBER
MINLEN NUMBER Y
DEFLOG NUMBER
EXT_MGT NUMBER
ALLOC_TYPE NUMBER
BLOCKSIZE NUMBER
MAXSIZE NUMBER Y ----> 11g多了此字段
exu9tbs 是个系统视图。