开发者社区> 问答> 正文

Java连接Oracle数据库出现问题

报错如下,java代码在另一台电脑上连接没有问题,想请各位明示。
`Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor`

展开
收起
蛮大人123 2016-05-31 09:30:32 4107 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    出现这种问题的情况一般是两种:
    1.看看是不是监听服务没有起来
    2.检查有没有修改IP地址,计算机名称

    除此之外在网上查资料的时候还有一种:http://blog.csdn.net/icqsky/archive/2009/07/01/4313791.aspx
    如下:这个错误是因为Listener出了问题,请检查一下你的listener.ora文件,看下是否存在如下配置:

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
    )
       如果说是这样,那么请将一段改成
    SID_LIST_LISTENER =
     (SID_LIST =
     (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
      ) (SID_DESC =
         (GLOBAL_DBNAME = ORCL)
         (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
         (SID_NAME = ORCL)
      )
    )
         这样以后,关掉Service和LISTENER。再启动Service和LISTENER,这样应该就可以了,注意顺序。
          查了一下,网上是说,加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进程监视器(pmon)中去。所以不会有什么问题。但是反过却不行。
         如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。所以需要先起LISTENER才可以。
        总结一下,如果说你不加那段东西,那么就应该先起LISTENER,如果说你加了那段东西,就应该先起Serivce。
    2019-07-17 19:21:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载

相关镜像