oracle 10g的dmp如何匯入9i

ysj5125094發表於2013-03-13

問題描述:如何將oracle 10g中的資料庫物件遷移到9i中.這個10g和9i的伺服器分別搭建在區域網的兩個機器上,可以相互訪問.

 

問題分析:在網上查了一些資料,表明要想將10g匯出的dmp檔案匯入到9i中,是不可實現的.只能實現9i往10g中導.如果想要把10g中的資料匯入到9i中,可以先到9i那臺伺服器上配置一個tnsnames.ora串,用於訪問10g資料庫,之後在9i伺服器中用9i客戶端提供的exp命令實現匯出,再用imp命令實現匯入.

10g匯出的dmp往9i中匯入,可能會報以下錯誤.

在安裝有9i客戶端執行匯入命令時會報:

Import started on 2013-3-13 14:17:13
E:\oracle\ora92\bin\IMP.EXE log=C:\DOCUME~1\wangzh\LOCALS~1\Temp\plsimp.log file=D:\yusj\dqjz\dqjz20130308.dmp userid=dqjz/dqjz@ORCL buffer=30720 commit=no full=yes grants=yes ignore=yes indexes=yes rows=yes show=no constraints=yes

連線到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

IMP-00010: 不是有效的匯出檔案,標題驗證失敗
IMP-00000: 未成功終止匯入

Import finished on 2013-3-13 14:17:13

 

在安裝有10g客戶端執行匯入命令時會報:

 

Import started on 2013-3-13 上午 11:13:02
D:\oracle\product\10.2.0\db_1\bin\imp.exe log=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\plsimp.log file=C:\dqjz20130308.dmp userid=dqjz/dqjz@ORCL_232 buffer=30720 commit=no full=yes grants=yes ignore=yes indexes=yes rows=yes show=no constraints=yes

IMP-00058: 遇到 ORACLE 錯誤 6550
ORA-06550: 第 1 行, 第 33 列: 
PLS-00302: 必須說明 'SET_NO_OUTLINES' 元件
ORA-06550: 第 1 行, 第 7 列: 
PL/SQL: Statement ignored
IMP-00000: 未成功終止匯入

Import finished on 2013-3-13 上午 11:13:03

 

問題解決:

1. 在安裝有9i客戶端的機器中配置tnsnames.ora,保證可以正常連線到10g資料庫.

2. 在安裝有9i客戶端的機器中執行exp命令匯出dmp檔案之前,需要解決一個問題,那就是對BLOB的支援,如果要匯出的表中含有BLOB欄位,那麼在執行exp命令的時候會報EXP-00003錯誤,解決方法如下:需要先連線到10資料庫,用sys使用者登入,找到exu9tne檢視(view),備份出來.再把執行下面SQL語句:

CREATE OR REPLACE VIEW SYS.EXU9TNE
(tsno, fileno, blockno, length)
AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT "TSNO","FILENO","BLOCKNO","LENGTH" FROM SYS.EXU9TNEB;

注意,在匯出完資料之後,一個要把這個view恢復到初始值. 

我本地的初始值為:

CREATE OR REPLACE VIEW SYS.EXU9TNE
(tsno, fileno, blockno, length)
AS
SELECT  ts#, segfile#, segblock#, length
        FROM    sys.uet$
        WHERE   ext# = 1;

 

3. 在安裝有9i客戶端的機器中執行imp命令,完成匯入操作(注意在匯入之前一定要先建立相應的表空間,使用者等).

 

 

 

 

相關文章