plSQL技巧:“tns:无法解析指定的连接标识符”问题详解

tns:监听服务Transparance Network Substrate,透明网络底层。一般是用它提供的监听服务。
连接标识符:在安装oracle10g client 时,提示设定命名连接,连接标识符即client设定的命令连接的名称。即service_name(网络别名、网络服务名、主机连接字符串、主机名)

tnsping<service_name> 是用来执行oracle 网络别名service_name的解析工作。会解析出ORACLE client中设定的服务器IP与监听端口,并列明所读取的ORACLE client监听服务设置文件所在的目录。这个文件一般是   X(盘符):\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora

pl/sql 每当oracle client中service name发生变化,都会按照client安装目录下最新的tnsnames.ora,去作为它的读取文件;如果该文件在卸载oracle client后被手工删除或手工改动过后,未在oracle client中修改;则会报“ORA-12514:tns:无法解析指定的连接标识符”错误。

解决方法:

1、用tnsping <service_name>检测 plSQL登陆时database(数据库)别名是否可正确解析,如报“TNS-03505:无法解析名称”,则此database别名有冲突,需更改。

2、手工改动tnsnames.ora后,在oracle client中修改主机名(“对象”--“将数据库添加到树”--“从本地的……”,然后把错误主机名删除或从树中移除)

3、重新打开plSQL,用正确的database别名登陆,即恢复正常

4、如仍有问题,不登陆进入plSQL界面,进入"tools”--"Preferences"--"Oracle"--"Connection",把"home”(oracle主目录名)里的数据清空,应用后,重新启动plSQL即可。

附录:在做以上更改后oracle自带的sqlPLUS,可能会出现不能正常登陆远程服务器的情况;因为其访问的是database下的tnsnames.ora文件,目录与client的不一样,默认为 X(盘符):\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora

解决方法:只需将client下tnsnames.ora中定义的主机字符串(service_name)的命令行复制到database 下的tnsnames.ora内,然后保存就可以了。

你可能感兴趣的:(oracle,sql,工作)