ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

问题描述:已经开发完成的程序部署到正式环境的时候启动web服务器出现了如下错误:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。

连接的oracle是一个部署在两台liunx上的oracle组成的oracle集群

通过pl/sql developer连接数据库,可以正常连接。但是程序中使用相同的连接符则会出现上面描述的错误。

在网上搜了很久尝试了很多方法都没有成功。最终在一个帖子中看到了解决方法,尝试后解决了这个问题。

内容:jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name.而使用plsql连接数据库的时候,只需要数据库的services_name即可,所以修改连接字符串中的services_name 为sid_name.
查询sid_name的方法
select INSTANCE_NAME from v$instance;

 

解决方法:在pl/sql developer中的连接符使用的实例名是orcl,但是通过select INSTANCE_NAME from v$instance;语句查询出的是orcl1,在程序中将原来的连接符中的orcl改成orcl1后问题解决了。

 

猜你喜欢

转载自blog.csdn.net/xia_xi_long/article/details/70885708