JAVA JDBC 连接Oracle数据库报错ORA-12505解决方案

oracle数据库 同时被 2 个专栏收录
12 篇文章 0 订阅
11 篇文章 0 订阅

问题描述:

Navacat或PLSQL Developer连Oracle数据库不报错,可以正常查询数据,但是使用Java的JDBC连接数据库就会报错:
java.sql.SQLException:Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:

原因:

Navacat或PLSQL Developer可以直接使用service_name连接Oracle数据库;
JAVA的JDBC不能使用service_name连接,需要使用INSTANCE_NAME才可以进行连接;
JAVA的OJDBC支持3种连接方式,但是这里使用的是sid方式连接,可以通过以下解决方案,查询到数据库的sid,然后使用sid连接;或者更换为OJDBC的service_name方式进行连接,详情可点击这里查看我的另一篇文章关于OJDBC的三种连接方式。

解决方法:

连接Oracle数据库查询数据库的INSTANCE_NAME;

SELECT INSTANCE_NAME FROM v$instance;

将查询到的INSTANCE_NAME换到JAVA的JDBC上连接即可;

例:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值