程序调用配置文件连接oracle数据库,报错提示ORA-12505, TNS:listener does not currently know of SID

jieqixun 2014-07-10 03:38:50
Java程序调用配置文件连接数据库时,报错提示:
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:
192.168.12.100:1521:ORACLEDB
使用cmd命令sqlplus myoracle/myoracle@192.168.12.100/ORACLEDB 连接数据库成功,使用net manager也是可以连接上
数据库的,但是不知是否由于安装的是oracle客户端,lsnrctl命令不可用
尝试方法:
1、使用oracle客户端配置监听程序,连接远程数据库,连接成功。但是代码中执行程序时,错误仍然存在
2、使用网上说的方法,修改listener.ora里的文件信息,修改后错误仍然存在。在listener.ora中增加如下一段话
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORACLEDB)
(ORACLE_HOME =D:\app\Administrator)
(GLOBAL_DBNAME = ORACLEDB)
)
)

求大神们给个思路或者方法,帮忙解决下问题,谢谢啦
...全文
31243 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
引用 6 楼 u013419946 的回复:
jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name.而使用plsql连接数据库的时候,只需要数据库的services_name即可,所以修改连接字符串中的services_name 为sid_name. 查询sid_name的方法 select INSTANCE_NAME from v$instance;
非常感谢,问题解决
  • 打赏
  • 举报
回复
实例名写错啦
fcmrys 2015-09-01
  • 打赏
  • 举报
回复
引用 6 楼 u013419946 的回复:
jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name.而使用plsql连接数据库的时候,只需要数据库的services_name即可,所以修改连接字符串中的services_name 为sid_name. 查询sid_name的方法 select INSTANCE_NAME from v$instance;
万分感谢,四天没跑起来的项目,你的一句话就把我拯救了!
lx_script 2015-03-05
  • 打赏
  • 举报
回复
jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name.而使用plsql连接数据库的时候,只需要数据库的services_name即可,所以修改连接字符串中的services_name 为sid_name. 查询sid_name的方法 select INSTANCE_NAME from v$instance;
jieqixun 2014-07-12
  • 打赏
  • 举报
回复
问题根源不清楚,不过现在修改为odbc连接数据库就可以啦,jdbc连接数据库还是报同样错误。另外oracle客户端需配置一下,谢谢楼上的各位热心。
KEL-1 2014-07-11
  • 打赏
  • 举报
回复
TNS:listener does not currently know of SID ,实例名错了吧
jieqixun 2014-07-11
  • 打赏
  • 举报
回复
实例名没错的,错的话sqlplus就连不上的 tnsnames的内容 ORACLEDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.100)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORACLEDB) ) )
小灰狼W 2014-07-10
  • 打赏
  • 举报
回复
修改监听配置后要在服务器上lsnrctl reload才会生效 应该不是RAC吧
  • 打赏
  • 举报
回复
你192.168.12.100:1521:ORACLEDB 这是JDBC通过thin方式连接Oracle。 看下你tnsnames.ora内容呢?

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧