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