2015-02-23 65 views
1

我試圖從Oracle7.2.0.4 32位客戶端連接到Win7和Win 8.1機器上的Oracle 11.2.0.2 64位數據庫。我可以成功地ping服務器並在兩臺機器上TNSPing偵聽器。但是,當我嘗試使用系統和密碼登錄到SQLPLus時,我收到ORA-12560 TNS:協議適配器錯誤。我可以登錄到服務器上的SQLPlus。有任何想法嗎?數據庫已重新啓動以及收聽者。 ORACLE_SID已設置。我卡...TNS:協議適配器錯誤

+0

你怎麼連接 - 你使用的完整命令是什麼,包括連接字符串?如果您使用的是TNS別名,那麼您的PC上的tnsnames.ora文件中的定義如何?你的tnsping命令是什麼? (作爲遠程系統連接需要額外的步驟,並且您可能不應該作爲內置用戶進行連接;但是由於此原因,您不會收到適配器錯誤)。 – 2015-02-23 16:32:54

+0

TNS ping命令是tnsping abcd。 abcd是我在TNS名稱中列出的別名。不幸的是需要連接系統。另外,如果我在win7和win8.1環境中使用「system @ abcd」連接到sqlplus,它就可以工作。過去在其他環境中,「@abcd」不需要連接。我不確定爲什麼現在需要它。是否有解決方法,因爲使用「@abcd」不適用於我們的場景。 – samuraiY 2015-02-23 16:50:49

+0

你已經失去了我......「如果我使用」system @ abcd「連接到sqlplus ......它可以工作」,但問題是它不起作用。請編輯問題展示,確切地說,什麼不工作,如果沒有,就會得到完整的錯誤信息。 – 2015-02-23 16:54:35

回答

1

如果我遵循你所看到的,聽起來你只是想在你的Windows機器上設置the LOCAL enviroment variable到TNS別名;那麼當你嘗試連接時你不需要提供。

這是12c即時客戶端,但效果與11g客戶端相同。指定一個別名作爲連接字符串將工作(ORA-01017仍然是從DB推出):

c:\Program Files\instantclient_12_1>sqlplus -l x/[email protected] 

SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 23 17:12:34 2015 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 

ERROR: 
ORA-01017: invalid username/password; logon denied 

沒有別名連接得到您的ORA-12560:

c:\Program Files\instantclient_12_1>sqlplus -l x/y 

SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 23 17:11:58 2015 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 

ERROR: 
ORA-12560: TNS:protocol adapter error 

但如果我設置LOCAL然後我可以連接我彷彿指定別名:

c:\Program Files\instantclient_12_1>set LOCAL=abcd 

c:\Program Files\instantclient_12_1>sqlplus -l x/y 

SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 23 17:14:23 2015 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 

ERROR: 
ORA-01017: invalid username/password; logon denied 

你並不需要有ORACLE_SID設置爲僅用於遺留連接,其中CLIE nt和服務器在同一個盒子上。

+0

工作正常!謝謝Alex! – samuraiY 2015-02-23 17:27:32