ORA-12514: TNS: listener does not currently know of service requested in connect descriptor

本文详细介绍了在使用Navicat连接Oracle11g数据库时遇到ORA-12514错误的解决过程。通过修改listener.ora文件并正确配置SID_LIST_LISTENER参数,重新注册LISTENER服务,最终成功解决了连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在新的电脑上安装了 Oracle 11g。 但是在使用 navicat 连接 Oracle 数据库的时候没有连接上,报以下错误。

错误    ORA-12514: TNS: listener does not currently know of service requested in connect descriptor

但是这个错误sqlplus,plsql 都是可以登录上去的,只有navicat登录失败,思来想去,尝试了很多的办法,并且还尝试过删除了Oracle ,并将 注册表信息进行删除,否则重装会失败。

重装后还是会出现错误。

按照以前的办法,将  OCI 换成11的就行,但是这次还是不行。

最终尝试了很多,终于找到了办法,

就是在Oracle安装目录下    D:\oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN  下的  listener.ora  文件中加入 红色段落

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oracle11g\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      #(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )(SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = D:\oracle11g\product\11.2.0\dbhome_1)
    (SID_NAME = ORCL)
    )

  )
注意  ORACLE_HOME = D:\oracle11g\product\11.2.0\dbhome_1    改为自己的目录位置

重启监听服务。

这样以后,关掉Service和LISTENER。再启动Service和LISTENER,这样应该就可以了,注意顺序。

      加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进程监视器(pmon)中去。所以不会有什么问题。但是反过却不行。

      如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。所以需要先起LISTENER才可以。

最后,连接成功。

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值