1. 程式人生 > 其它 >ORA-12162: TNS:net service name is incorrectly specified

ORA-12162: TNS:net service name is incorrectly specified

在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