本文介紹了SQLPLUS/OCI8=>;ORA-12154:tns:無法解析指定的連接標識符(OCIError)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我使用的是Windows 10Pro x64。我為我的Ruby環境安裝了gem:ruby_oci8
我安裝了Oracle C:instClient_12_2并添加到PATH,我還安裝了SQLPLUS實用程序并添加到PATH
我需要連接到遠程Oracle數據庫
我的tnsnames.ora,由TNS_ADMIN->;C:Oracle指向
系統變量中的etworkadmin:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = <port>))
)
(CONNECT_DATA =
(SID = <sid>)
)
)
我對此還不熟悉。請幫我辦一些其他的支票。
非常感謝!
推薦答案
調試您看不到的東西幾乎是不可能的,而且您提供的東西很少。為什么不使用復制和粘貼來準確地顯示您所做的工作和確切的結果-完整的命令行和完整的響應?在你的后續評論中,你提到了其他幾條錯誤消息,但同樣沒有上下文。
既然您提到了sqlplus和";run Connect@";,我就假定您的命令如下所示:
C:> sqlplus scott/tiger@orcl
在這種用法中,‘@’是一個分隔符,表示后面的內容(在本例中為‘ORCL’)是網絡服務名。當sqlplus解析出命令行時,它將采用此值(‘orCL’)并在本地文件‘tnsnames.ora’中查找匹配項。默認情況下,它將位于%ORACLE_HOME/network/admin中。典型條目可能如下所示:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = somehostname)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
其中第一行是Sqlplus正在查找的網絡服務名。如果找不到請求的網絡服務名,則會得到‘ORA-12154:tns:無法解析指定的連接標識符’。這是一個非常明確的錯誤,它正好表示以下兩種情況之一:1)找不到文件‘tnsnames.ora’,或2)找到了該文件,但沒有所請求的網絡服務名條目。
因此,您需要證明在預期位置中存在tnsnames.ora文件,并且該文件具有所請求的網絡服務名稱的條目。
這篇關于SQLPLUS/OCI8=>;ORA-12154:tns:無法解析指定的連接標識符(OCIError)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,