Sql*Plus 錯誤:ORA-12154:TNS:無法解析指定的連接標識符
我在雲 Oracle Linux 環境上安裝了 Sql*PLUS,以便訪問遠端數據庫。我在這裡使用提供的安裝說明作為答案:https ://stackoverflow.com/questions/23488394/how-to-install-sql-plus-client-in-linux
我的連接字元串是正確的,但我得到了錯誤
ERROR: ORA-12154: TNS:could not resolve the connect identifier specified
我嘗試通過查看 my 來解決此問題
tnsnames.ora
,但它不存在並且連接到 my 的路徑$ORACLE_HOME
沒有子文件夾“/network/admin/
”。為了解決這個問題,我創建了兩個文件夾並在包含我的連接字元串tnsnames.ora
的新文件中創建了一個文件。admin/
不幸的是,我仍然遇到同樣的錯誤。我的新
tnsnames.ora
文件的路徑是:/usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
作為參考,我的連接字元串的結構如下:
(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST= asdasdasd.com)(PORT=1524)) (CONNECT_DATA = (SID = AARCER1) ) )
我在終端中輸入的命令是:
sqlplus "userName/myPassword@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=asdasdasd.com)(PORT=1524))(CONNECT_DATA=(SID=AARCER1)))"
我應該怎麼做才能解決這個錯誤?
當您使用時
sqlplus userName/myPassword@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=asdasdasd.com)(PORT=1524))(CONNECT_DATA=(SID=AARCER1)))"
,您不需要任何tnsnames.ora
文件。您在文件中的條目
tnsnames.ora
應如下所示:AARCER1 = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST= asdasdasd.com)(PORT=1524)) (CONNECT_DATA = (SID = AARCER1) ) )
然後你可以將你的命令縮短為
sqlplus userName/myPassword@AARCER1
- 這就是tnsnames.ora
.為了使用
tnsnames.ora
你還必須有文件sqlnet.ora
。在那裡你需要一個這樣的條目:NAMES.DIRECTORY_PATH = (TNSNAMES)
但是,預設值為
NAMES.DIRECTORY_PATH=(tnsnames, ldap, ezconnect)
,因此實際上您可以跳過它。將環境變數設置
TNS_ADMIN
為這些文件的位置,即export TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/admin
您還可以使用 EZ Connect 方法避免 tnsnames.ora 文件。
sqlplus scott/tiger@asdasdasd.com:1524/<service name goes here>
您可以通過執行 lsnrctl status 命令獲取服務名稱。