初次使用jdbc连接Oracle数据库的时候报了如下错误:
Exception in thread "main" 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
报错原因
到网上搜索了原因:数据库监听的配置文件tnsnames.ora中的sid与数据库的sid以及jdbc程序中连接数据库的url的sid不匹配,只有三者相同,此问题才不会出。
修改方法
1、首先,查看自己数据库的sid:
用sysdba身份登录 执行 select name from V$database; 语句,我的sid是XE
更多修改方法见:https://blog.csdn.net/zoro_13/article/details/16939523
2、查看数据库监听的配置文件tnsnames.ora中的sid(去Oracle的安装文件中找tnsnames.ora文件),把其中的service_name改成数据库正确的sid值,如我的是XE
3、jdbc程序中连接数据库的url的sid
最后,修改tnsnames.ora完成需要重新启动Oracle。