今日导数据遇到一错误,记得之前也遇到过,但是没做记录,在此记一记,便于加深印象。

 

使用exp导数据的时候,在本地连远程DB服务器执行如下语句:

 
  
  1. exp **/**@192.168.90.125/center file=.... 

出现如下信息:

 
  
  1. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production 
  2. With the Partitioning, OLAP and Data Mining options 
  3. 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 
  4.  
  5. 即将导出指定的表通过常规路径... 
  6. . . 正在导出表                   TB_SYS_ACTION 
  7. EXP-00008: 遇到 ORACLE 错误 904 
  8. ORA-00904: "MAXSIZE": invalid identifier 
  9. . . 正在导出表             TB_SYS_ASSEMBLYINFO 
  10. EXP-00008: 遇到 ORACLE 错误 1003 
  11. ORA-01003: no statement parsed 
  12. . . 正在导出表               TB_SYS_BILLDEFINE 
  13. EXP-00008: 遇到 ORACLE 错误 904 
  14. ORA-00904: "MAXSIZE": invalid identifier 
  15. . . 正在导出表               TB_SYS_BILLQRYEXT 
  16. EXP-00008: 遇到 ORACLE 错误 1003 
  17. ORA-01003: no statement parsed 
  18. . . 正在导出表               TB_SYS_BILLQRYSIM 
  19. EXP-00008: 遇到 ORACLE 错误 904 
  20. ORA-00904: "MAXSIZE": invalid identifier 
  21. . . 正在导出表          TB_SYS_COLUMNDISPLAYER 
  22. EXP-00008: 遇到 ORACLE 错误 1003 
  23. ORA-01003: no statement parsed 
  24. . . 正在导出表           TB_SYS_DBOBJMODIFYLOG 
  25. EXP-00008: 遇到 ORACLE 错误 904 
  26. ORA-00904: "MAXSIZE": invalid identifier 
  27. . . 正在导出表            TB_SYS_DDFLOWCONTROL 
  28. EXP-00008: 遇到 ORACLE 错误 1003 
  29. ORA-01003: no statement parsed 
  30. . . 正在导出表                     TB_SYS_DICT 
  31. EXP-00008: 遇到 ORACLE 错误 904 
  32. ORA-00904: "MAXSIZE": invalid identifier 
  33. 。。。。。。。。 

其实,此报错信息是因为本地使用的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版本中分别执行

 
  
  1. SQL > desc sys.exu9tbs 

结果如下:

 
  
  1. Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0  
  2. Connected as center 
  3.   
  4. SQL> desc sys.exu9tbs 
  5. Name       Type         Nullable Default Comments  
  6. ---------- ------------ -------- ------- --------  
  7. ID         NUMBER                                  
  8. OWNER      CHAR(6)      Y                          
  9. NAME       VARCHAR2(30)                            
  10. ISONLINE   VARCHAR2(7)  Y                          
  11. CONTENT    VARCHAR2(9)  Y                          
  12. INIEXT     NUMBER                                  
  13. SEXT       NUMBER                                  
  14. PCTINC     NUMBER                                  
  15. MINEXT     NUMBER                                  
  16. MAXEXT     NUMBER                                  
  17. MINLEN     NUMBER       Y                          
  18. DEFLOG     NUMBER                                  
  19. EXT_MGT    NUMBER                                  
  20. ALLOC_TYPE NUMBER                                  
  21. BLOCKSIZE  NUMBER   

 

 
  
  1. Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0  
  2. Connected as hbtest 
  3.   
  4. SQL> desc sys.exu9tbs 
  5. Name       Type         Nullable Default Comments  
  6. ---------- ------------ -------- ------- --------  
  7. ID         NUMBER                                  
  8. OWNER      CHAR(6)      Y                          
  9. NAME       VARCHAR2(30)                            
  10. ISONLINE   VARCHAR2(7)  Y                          
  11. CONTENT    VARCHAR2(9)  Y                          
  12. INIEXT     NUMBER                                  
  13. SEXT       NUMBER                                  
  14. PCTINC     NUMBER                                  
  15. MINEXT     NUMBER                                  
  16. MAXEXT     NUMBER                                  
  17. MINLEN     NUMBER       Y                          
  18. DEFLOG     NUMBER                                  
  19. EXT_MGT    NUMBER                                  
  20. ALLOC_TYPE NUMBER                                  
  21. BLOCKSIZE  NUMBER                                  
  22. MAXSIZE    NUMBER       Y      ----> 11g多了此字段                   
  23.   

exu9tbs 是个系统视图。