Oracle 中的 JDBC 瘦连接字符串同时使用冒号和正斜杠

Posted

技术标签:

【中文标题】Oracle 中的 JDBC 瘦连接字符串同时使用冒号和正斜杠【英文标题】:JDBC Thin connection string in Oracle uses both colon and forward slash 【发布时间】:2017-10-08 15:09:38 【问题描述】:

我想知道在 Oracle 中建立连接 URL 时,我们能否同时使用冒号和正斜杠和 SID?

例如

jdbc:oracle:thin:@<host>:1521:<SID>
jdbc:oracle:thin:@<host>:1521/<SID>

这两个是否相同并且可以工作?

我正在构建一个适用于 Oracle RAC 和非 RAC 环境的应用程序,并且 RAC 环境支持 SERVICE NAMEforward slash 所以想检查 non RAC 环境是否支持 forward slash

对于RAC的环境URL是这样的

jdbc:oracle:thin:@<host>:1521/<SERVICENAME>

更新 这是一个不同的问题,因为我想问是否可以同时使用(:/,同时在我们称为OracleJDBCUrl 的连接字符串中使用&lt;SID&gt;

【问题讨论】:

@JSapkota 所以这意味着non RAC 中的 如果 SQL Developer 说连接已建立且状态为成功,我们可以同时使用冒号和正斜杠? 但是,如果我尝试从 Java 连接,“/”用于服务名称,“:”用于 SID。 Java JDBC - How to connect to Oracle using Service Name instead of SID @JSapkota 在使用 时我可以使用任何东西(在冒号和斜杠之间)吗? @PanagiotisKanavos 我想使用,因为我可以使用/ 连接到数据库,所以哪个是正确的,我坚持这一点。我的意思是OracleJDBCURL 的网址。 【参考方案1】:

我能够在connection URL 中使用冒号: 和正斜杠/ 作为SID,并且能够建立连接。 我认为在Oracle 11g 中我们可以做这样的事情,而对于Service Name,我们只能使用正斜杠/

【讨论】:

【参考方案2】:

我们建议使用如下所示的连接 URL 的长格式。

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(HOST=myhost)(PORT=1521)(PROTOCOL=tcp))(CONNECT_DATA=(SERVICE_NAME=myorcldbservicename)))

查看DataSourceSample 和UCPSample 以供参考。

【讨论】:

【参考方案3】:

SID 和 ServiceName 都只使用“/”对我有效。我在 windows 服务器上使用 Java.sql.Connection,我不确定它是否适用于 Linux。

jdbc:oracle:thin:@<host>:<port>/<SERVICENAME or SID>

【讨论】:

以上是关于Oracle 中的 JDBC 瘦连接字符串同时使用冒号和正斜杠的主要内容,如果未能解决你的问题,请参考以下文章

为 Oracle JDBC 瘦客户端设置语言

使用 Oracle 瘦客户端和 jdbc 强制加密网络流量?

Tomcat、JDBC 瘦客户端和 Oracle 钱包

如何使用带有 TNSNames 别名语法的 JDBC 瘦驱动程序连接到 Oracle 数据库

使用 tomcat 6 dbcp 和 oracle 11 瘦驱动程序的堆空间不足

JDBC Oracle Thin ORA-02396 连接空闲超时