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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM