Oracle

導入 DMP 文件時出現 Oracle 錯誤 12154

  • December 6, 2019

我的設置

我正在執行Windows 7 64 位,使用適用於 Windows 64 位的 Oracle DB 11g R2。我有 Oracle SQL Developer Release 3.0 (4.0.2.15.21) 作為我的數據庫的 GUI。


我按照這篇文章中關於如何導入 Oracle .DMP 文件的說明進行操作。我在命令提示符下發出了這個命令:C:\>imp sys@dev/password12345 FROMUSER=FOOADMIN TOUSER=FOOADMIN file=c:\fooadmin.dmp full=yes

然後它提示我輸入正確的密碼,然後我收到此錯誤:

IMP-00058: ORACLE error 12154 encountered
ORA-12154: TNS:could not resolve the connect identifier specified
IMP-00000: Import terminated unsuccessfully

**實際問題:**如何修復此錯誤並成功導入 .dmp 文件?或者我可以採取哪些步驟來實現這個工作……?


我的文件和我做了什麼

我瀏覽了無數關於同一問題的文章。我的tnsnames.oralistener.orasqlnet.ora位於此目錄中:C:\oracle\product\11.2.0\dbhome\NETWORK\ADMIN

我的tnsnames.ora文件中的連接如下所示(我也嘗試將我的電腦名稱作為主機,而不是 127.0.0.1)…

DEV =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
   )
 (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = DEV)
 )
)

路徑變數

我在我的 PATH 中添加了以下內容(我意識到那裡可能有一些不必要的項目,我只是想安全起見。): C:\oracle\product\11.2.0\dbhome\bin;C:\oracle\product\11.2.0\client_1;C:\oracle\product\11.2.0\client_1\bin;%ORACLE_HOME%\bin;

我還在我的系統變數中創建了另外兩個變數…

TNS_ADMIN C:\oracle\product\11.2.0\dbhome\NETWORK\ADMIN

TNS_NAMES C:\oracle\product\11.2.0\dbhome\NETWORK\ADMIN

在 Windows 上使用它(三個嵌套的雙引號):

exp system/password_for_system@dev file=c:\fooadmin.dmp full=yes

imp """sys/password12345@dev as sysdba""" FROMUSER=FOOADMIN TOUSER=FOOADMIN file=c:\fooadmin.dmp

一般來說,imp 可以使用 sys 帳戶按預期工作,但不建議這樣做。但是使用 sys 帳戶的 exp 可能會默默地產生不一致的轉儲文件。所以最好避免它,例如使用system.

引用自:https://dba.stackexchange.com/questions/74365