項目開始拿到了dmp文件,數據庫用的是10g的,但是盡然沒導成功,後來想可能導出的時候用11導出的,決定試一下。
正好自己的機器是11的客戶端,結果不識別imp命令,到安裝目錄下的bin文件夾下看盡然沒有imp執行文件。可能裝客戶端的時候沒選管理者裝。
怎麼辦呢,從別的11的bin目錄下的imp文件拷貝了一個放到了自己的bin下。執行還是出錯,No message file for product = RDBMS,……
類似這樣的message,網上查了一下說拷一個【RDBMS\mesg】的內容也需要拷貝,比較了一下確實少不少,就全拷過來了,以防萬一備份了原來的。
拷完再試,OK了。
不能直接將.dmp導到SQL SERVER中,可以導到Oracle中,然後然後導成文本,再導入到SQL中,也可以利用SQL的本地包,直接將Oracle的數據導入到SQL中。
你最好問問是傳統的exp生成的dmp文件還是datapump生成的dmp文件,前者要用imp導入,後者用impdp導入。
表空間建議你還是手工建,因為雖然full=y模式的導入會自動創建表空間,但是數據文件的路徑是跟源庫一樣的,這有時會出問題,而手工建表空間免去了一些旁枝側節發生的可能性。
如果你的dmp文件是全庫模式導出的,根據工具的不同,導入命令是:
imp username/password file=/path/dmp_file_name log=/path/log_file_name full=y
impdp username/password directory=directory_name dumpfile=dmp_file_name logfile=log_file_name full=y
這裡的directory是數據庫內定義的一個路徑