美文网首页
JDBC连接数据库使用SID和service_name的区别

JDBC连接数据库使用SID和service_name的区别

作者: 黑码不黑 | 来源:发表于2018-08-13 19:07 被阅读0次

    近期在项目中使用JDBC连接数据库的时候报错:

    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    The Connection descriptor used by the client was:
    192.217.14.203:11524:database
    

    通过错误信息 ORA-12505可以知道,是SID无法识别。此时需要检查当前使用的是SID还是service_name。

    查询数据库SID方法:

    select instance_name from  V$instance;
    

    查询数据库service_name方法

    select value from v$parameter where name = 'service_names';
    

    在配置JDBC数据库连接地址的时候,SID和service_name的格式是不同的

    • 使用SID配置地址格式
    jdbc:oracle:thin:@<host>:<port>:<SID> 
    例如:
    jdbc:oracle:thin:@182.168.1.223:1522:aaa
    
    • 使用service_name配置地址格式
    jdbc:oracle:thin:@//<host>:<port>/<service_name>
    

    根据使用的SID和service_name 来使用相应格式进行配置,最后再启动服务就不会报错了。

    相关文章

      网友评论

          本文标题:JDBC连接数据库使用SID和service_name的区别

          本文链接:https://www.haomeiwen.com/subject/fnnubftx.html