ORA-12162: TNS:net service name is incorrectly specified
阿新 • • 發佈:2021-10-15
在linux中採用如下方式登入oracle,有時會出現ORA-12162: TNS:net service name is incorrectly specified這樣的錯誤。
sqlplus /nolog
conn /as sysdba
可以參考如下方式解決,親測有效:
本方法適用於在cmd命令列視窗以及pl/sql登陸Oracle下登入本機或者遠端Oracle。
1、首先保證在當前主機上設定了ORACLE_HOME環境變數:
例如:ORACLE_HOME=D:\oracle\product\10.2.0\db_2,一般在安裝Oracle客戶端時會自動設定。
2、編輯%ORACLE_HOME%\NETWORK\ADMIN下的tnsnames.ora檔案,示例如下:
myorcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.130.100)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) localhost= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
該檔案的目的是為了在命令列登陸時解析訪問地址,pl/sql也會預設讀取該檔案來連線。myorcl即為一個別名,後面命令列中使用的就是它,可定義多個。
3、命令列登陸的兩種方式,(登陸本機和登陸遠端都一樣):
A、第一種方式:sqlplus username/password@[tnsnames.ora檔案中已經定義的別名]--後面不要加分號注意上面的格式,除了sqlplus後面有個空格,其他地方不要加空格。 sqlplus user01/user01@myorcl -- 即可登陸成功。 sqlplus user01/user01@localhost-- 另外一個例子 B、第二種方式:
① sqlplus /nolog--此時還沒有登陸。後面不要加分號
②conn username/password@[tnsnames.ora檔案中已經定義的別名]--後面不要加分號示例: sqlplus /nolog conn user01/user02@localhost 原文連結:https://www.cnblogs.com/tq03/p/3995139.html