天天看點

Oracle導入資料時報錯解決方法同花順對症下藥,藥到病除立起沉疴,效如桴鼓

目錄

  • 同花順
  • 對症下藥,藥到病除
  • 立起沉疴,效如桴鼓

同花順

Oracle的dmp檔案導入不進去,怎麼辦?

吃口藥,不要慌。

對症下藥,藥到病除

都知道,看到報錯,就看日志,它我們的指路明燈。

但是有的報錯是沒有日志的,比如:

PL/SQL導入資料時,黑視窗一閃而過。

這是因為你沒有配置Oracle的環境變量,如下就好了。

Oracle導入資料時報錯解決方法同花順對症下藥,藥到病除立起沉疴,效如桴鼓

立起沉疴,效如桴鼓

檢視日志,對症下藥,立起沉疴,效如桴鼓。

正常情況下,你本地的Oracle,在本地随便你怎麼導入導出都不會報錯。

在别的電腦上,導入時就會報錯,這種報錯的原因無非就是下邊幾種。

···························································································

1、dmp檔案中有新的表空間及使用者,你要導入的電腦中Oracle庫中沒有。

dmp檔案在建立表時,指定了表空間,但是表空間不在。給使用者授權時,沒有使用者,就報錯了。

通過檢視日志,看哪些東西是本地不存在的,建立即可。

2、你的dmp檔案導出方式是什麼

如果你使用的是普通的exp導出方式,那麼隻能使用普通的imp導入方式進行導入。資料泵的導入導出僅支援資料泵的導入導出。imp與exp,impdp與expdp成雙成對的使用。

3、導入導出指令報錯:unknown command beginning “exp SCOTT/…” - rest of line ignored.

這種報錯是由于你在可視化界面,執行導入導出指令導緻的,直接cmd運作指令就可以了,不需要進入oracle裡面。

4、權限問題

比如整庫導出,使用full參數,需要具備DBA權限。使用owner參數導出别的使用者資料,也需要具備DBA權限。

Oracle導入資料時報錯解決方法同花順對症下藥,藥到病除立起沉疴,效如桴鼓

5、指令行有問題。

比如導出時,full參數和owner參數不可以共存,導入時,full參數和fromUser/toUser不可以共存。

6、高低版本問題。IMP-00010:不是有效的導出檔案,頭部驗證失敗。

方法一:修改頭部資訊。(不推薦,有可能導緻資料丢失)

檢視本地Oracle版本:select *from v$version

最好的方法是,你導出一下scott使用者,然後打開看一下頭部資訊,然後複制粘貼。

Oracle導入資料時報錯解決方法同花順對症下藥,藥到病除立起沉疴,效如桴鼓

方法二:替換imp.exe檔案與exp.exe檔案。(推薦,最有效)

官網:

moving data between different releases of the Oracle database server, the following basic rules apply:

The Import utility and the database to which data is being imported (the target database) must be the same version.

The version of the Export utility must be equal to the lowest version of the source or target database.

For example, to create an export file for an import into a higher release database, use a version of the Export utility that is equal to the source database. Conversely, to create an export file for an import into a lower release database, use a version of the Export utility that is equal to the version of the target database.

翻譯:

在Oracle資料庫伺服器的不同版本之間移動資料時,應遵循以下基本規則:

導入實用程式和要導入資料的資料庫(目标資料庫)必須是同一版本。

導出實用程式的版本必須等于源或目标資料庫的最低版本。

例如,要為導入到更高版本的資料庫建立導出檔案,請使用與源資料庫相同的導出實用程式版本。相反,要為導入到較低版本資料庫建立導出檔案,請使用與目标資料庫版本相同的導出實用程式版本。

即:

站在導出方的立場上:

看你的檔案給誰用。

你的dmp檔案要用于高版本的Oracle,那麼你直接導出就好了。因為Oracle支援低版本導入高版本。

你的dmp檔案要用于低版本的Oracle,請使用低版本Oracle的exp.exe可執行檔案。

站在導入方的立場上:

你導不進去,換一個高版本(與dmp檔案一緻)的imp.exe工具,必須保證版本一緻。

因為Oracle不支援高版本導入到低版本。

總結一下:一般這種高低版本報錯出現于高版本檔案導入低版本資料庫,是以我們導出的時候,盡量使用低版本的,友善他人。