公司內的一個項目系統的數據庫從Oracle 8i 升級到 9i。 機器t1 安裝 Oracle 8.16 機器t2 安裝 Oracle 8.17 機器t3 安裝 Oracle 9i 現在為了將t1數據庫中的某一個用戶的數據導入到t3的9i中去, 在t3機器執行:E:/>eXP system/manager@t1
owner=wlBTst file=c:/emp0805wlbtst.dmp log
= c:/emp0805wlbtst.log comPRess=n
Export: Release 9.0.1.1.1 - ProdUCtion on
星期二8月 5 13:47:08 2003
(c) Copyright 2001 Oracle
Corporation. All rights reserved.
連接到: Oracle8i Enterprise Edition
Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
EXP-00056: 碰到 ORACLE 錯誤 942
ORA-00942: 表或視圖不存在
EXP-00000: 導出終止失敗
E:/> 所以只有在t1或t2的機器上執行exp,然后再用t3的imp將數據導入t3的9i庫中, 當時我感到很納悶,為什么不能用9i中的exp去把8i的數據導出來呢? 以下介紹兩個規則: 規則一:從Oracle 低版本的Export數據可以Import到Oracle高版本中,但限于Oracle的相鄰版本,如從Oracle 7 到 Oracle 8。對于兩個不相鄰版本間進行轉換,如從Oracle 6 到 Oracle 8,則應先將數據輸入到中間版本—Oracle 7,再從中間數據庫轉入更高版本。 規則二:Oracle的Export/Import工具只能連接到擁有更高或者一樣的Export/Import版本的數據庫。如Oracle 8.0.5的Export/Import(版本8.0.5.0.0)可連接到Oracle 8.1.6數據庫(版本8.1.6.0.0);高版本的Export導出來的轉儲文件,低版本的Import讀不了;低版本的Export導出來的轉儲文件,高版本的Import可以進行讀取。