我正在通过我的java程序连接到Oracle 11g DB。我使用的是服务名,而不是SID。
addr = jdbc:oracle:thin:@hostIP:1521:ServiceName
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection(addr,un,pw);
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery(SELECT * from Table);这个很好用。我能够连接到DB并检索数据。
但是,如果我传递服务ID而不是服务名称,代码就不能工作!我有例外。我尝试了这里提到的解决方案- Java JDBC - How to connect to Oracle using Service Name instead of SID。但我还是看到了同样的例外。
发布于 2022-02-22 17:37:05
对于服务名称,addr应该是这样的。
addr = jdbc:oracle:thin:@hostIP:1521/ServiceName
使用服务名称语法:
jdbc:oracle:thin:@//hosttcpPort/service_name
主机:数据库服务器的主机名
tcpPort:数据库侦听器端口
service_name:数据库的系统标识符
示例:
jdbc:oracle:thin:@//myhost:1525/myserviceDB
请参阅以下文章
https://stackoverflow.com/questions/39115656
复制相似问题