在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