由TNS: 无法解析指定的连接标识符引发的追溯

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

很多使用过ORACLE数据库的开发人员,使用PLSQL连接数据库时常会出现此情况。总结一下,发生此情况的几种原因和解决方法:

原因一 服务器端的监听服务是否打开

原因二 tnsnames.ora文件配置内容有错误


原因一 解决方法:

在cmd中执行命令:lsnrctl start

这个问题很好解决,出现原因一的概率极低。

原因二 解决方法

通过Sql Plus测试一下,如果Sql Plus能够连接成功,说明ORACLE数据库没有问题。问题出现在PLSQL上,PLSQL连接数据库涉及到的一个至关重要的配置文件就是:tnsnames.ora。

此问题就在于别名ORCL@186前面有空格(也有可能是其他连接符,在配置该文件时简明扼要最好),我遇到的问题就出现在这里,然而这种问题最容易被忽视。tnsnames.ora配置文件很矫情,有一个空格都跟你没完没了,会使整个配置文件中所有数据库连接全部失效,并且报此问题。

建议使用的文本编辑器

使用文本编辑器仔细查看是否有不该有的字符或空格,比较好用的编辑器如:Edit Plus,UE等。

tnsnames.ora文件代码如下:

# tnsnames.ora Network Configuration File: 
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL@243 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.243)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

TEST@189 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.159)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TEST)
    )
  )

PLSQL如何连接ORACLE

纠正不需要安装ORACLE客户端的说法

首先让大家走出一个误区,有一些博文中所说的PLSQL连接ORACLE数据库不需要安装ORACLE客户端,这种说法容易让新人走进误区。

ORACLE客户端安装的本质

PLSQL之所以可以连接上ORACLE主要是依据两个文件:tnsnames.ora、oci.dll文件。安装ORACLE客户端时在安装目录中可以找到oci.dll文件(此文件是ORACLE客户端的核心),其实安装ORACLE客户端的过程就是解压和配置组件的过程。这一过程由程序帮我们来实现而已。

不需要安装ORACLE客户端的说法,其实是已经下载了oci.dll及其他组件,然后在PLSQL中进行手动配置。如果没有这些组件,累死也连接不上,相信小女子,不会骗你的哟!

PLSQL和ORACLE客户端下载地址如下:
http://download.csdn.net/detail/banqingyang/9234195

PLSQL连接ORACLE的配置

傻瓜式操作配置如下,以D盘为例:
下载的压缩包
将压缩包解压,解压后放到D盘如下图:

文件存放位置

启动plsql

进入plsql界面

“工具–首选项”进入如下配置页面:
将plsql与oracle连接
Oracle主目录名:D:\JAVATOOLS\PLSQL\instantclient_11_2
Oci库:D:\JAVATOOLS\PLSQL\instantclient_11_2\oci.dll
tnsnames.ora文件所在目录:D:\JAVATOOLS\PLSQL\instantclient_11_2\network\admin

按照以上步骤配置好后,重启PLSQL。配置tnsnames.ora文件,连接数据库即可,具体配置请参照上面的代码,代码结构释义如下:
数据库别名 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 要连接的数据库IP地址)(PORT = 端口号))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 数据库名称)
)
)
端口号默认为:1521

PLSQL连接ORACLE就完成啦!

温馨提示:文件所存放位置不同,配置路径也会有所差异,原理是相通的。tnsnames.ora文件所在的目录,一般都在安装的oracle目录中,这两层文件的名称不会变network\admin。有兴趣的朋友可以再安装完的程序里找找。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值