ORA-12154: TNS: 无法解析指定的连接标识符

环境:
本机 oracle 11g,instantclient_11_2, pl/sql Developer11.1

instantclient的tnsnames.ora配置如下:
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

现象:
安装之后,pl/sql和sqlplus都可以连上(scott用户),第二天打开电脑,发现pl/sql正常,
sqlplus无法连接,提示: ORA-12154: TNS: 无法解析指定的连接标识符

原因:
密码中含有“@”符号

解决方法:
1、修改密码,不含特殊字符;
2、将密码加上引号

解决过程:
网上搜索说tnsnames.ora配置不正确,检查后发现没有问题,而且pl/sql连接正常(虽然pl/sql用的是instantclient的
tnsnames文件,sqlplus用的是oracle的tnanames,但我是拷贝的,这两个里面的ORCL的配置是一样的,并且前面没有
空格(别名前如有空格,也无法正常连接)),所以排除tnsnames文件的问题。再检查oracle相关的服务是否都已正常启动:



没有问题,服务正常。是不是用户的问题,我用system用户连接试试,发现可以正常连接,这说明就是scott用户的问题了。
从网上看到登录oracle数据库一般是: username/password@数据库实例,看到@时才想起我的密码里含有@字符,是不是这个问题?
搜了一下,网上说密码中含特殊字符的话,可以加引号,再次登录,密码加上双引号,连接成功。

你可能感兴趣的:(ORA-12154: TNS: 无法解析指定的连接标识符)