如何將oracle?

本人在做項目的時候,在導入oracle數據時遇到oracle版本不一致的問題,現已解決,覺得方法實用,分享給大家。

工具/原料

oracle

cmd命令

問題描述

我本地安裝的Oracle11g,服務器上安裝的數據庫是Oracle10g,最開始直接用imp命令導入時會報錯,如下圖

如何將oracle 數據從高版本導入到低版本?

經過分析,出現上述問題的原因是數據庫版本的問題,Oracle不支持高版本導入到低版本,解決方法如下兩種

方法一:修改dmp文件的版本號

用notepad++等文本編輯工具打開dmp文件,可以看到頭部信息

--TEXPORT:V11.02.00,即為源數據庫的版本號,將其修改為目的數據庫的版本號,如服務器上的為10.20.10。或者用DMP版本修改工具(網上搜一下),修改dmp文件的版本號。修改完了之後再用imp命令可導入。(此方法適用於表少且表結構簡單的情形,較複雜情況如含有二進制表的數據和表結構導入的時候會報錯,這些表和數據就丟失了)

如何將oracle 數據從高版本導入到低版本?

方法二:expdp和impdp命令(推薦)

首先創建一個用於存放對象的文件,即導入\導出時的文件存放目錄,以便能夠直接找到導出的文件。默認也有directory(directory=DATA_PUMP_DIR,不用創建),一般在 安裝目錄\admin\orcl\dpdump下。

舉例:我創建一個在E盤根目錄下的oracle_backup文件夾下的目錄。

如何將oracle 數據從高版本導入到低版本?

創建完目錄後,打開cmd,輸入“sqlplus system/[email protected]”(根據自己的數據庫情況輸入) 。接著,創建DIRECTORY,創建語句如下:

如何將oracle 數據從高版本導入到低版本?

授權(授予要導入數據的用戶對該目錄(路徑)進行讀和寫的權限),還是在連接數據庫的狀態下輸入:

如何將oracle 數據從高版本導入到低版本?

重進cmd,執行導出

如何將oracle 數據從高版本導入到低版本?

在服務器數據庫中用同樣的方法建立directory,把上一步中導出的dmp文件放在該目錄,執行導入

如何將oracle 數據從高版本導入到低版本?

注意:此種方法可保證導出數據庫的完整性,也可以將oracle11g中的空表導出!

注意事項

導出數據前一定要建立好目錄和授權

相關問題答案