關於oracle 11g客戶端匯出10g庫的問題

聽海★藍心夢發表於2009-10-10

今天在本機裝上11g的客戶端想體驗一把,沒想到第一次exp就出問題了:

C:\Documents and Settings>exp tables=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 Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 將不匯出表的索引
注: 將不匯出表的約束條件

即將匯出指定的表透過常規路徑...
. . 正在匯出表                   test
EXP-00008: 遇到 ORACLE 錯誤 904
ORA-00904: "MAXSIZE": invalid identifier
匯出成功終止, 但出現警告。

C:\Documents and Settings>

網上找了很多也沒找到,最後發現資料庫在其他機器上用oracle 10g客戶端匯出就沒問題。

有人說是資料字典丟了,於是在伺服器上執行

[oracle@localhost ~]$ sqlplus

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的,免得不必要的麻煩。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-616232/,如需轉載,請註明出處,否則將追究法律責任。

相關文章