问题描述:
今天使用jdbc连接oracle 10.2.0.1.0 数据库的时候
url:jdbc:oracle:thin:@localhost:1521:ORCL_PRO
出现了下列错误:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:
localhost:1521:orcl_project
localhost:1521:orcl_project
而直接通过plsql可以正常连接数据库,或者可以通过sqlplus 连接数据库
经过debug和查找相关的资料发现问题原因如下:
jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name
而使用plsql连接数据库的时候,只需要数据库的services_name即可,所以修改连接字符串中的services_name 为sid_name
而我们通常在Oracle Net Manager中看到的数据库实例名都为services_name(我的是ORCL_PRO,误以为是SID了)
附:
察看数据库中当前的sid:
SQL> select INSTANCE_NAME from v$instance;
orclproject