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 NAME 和 forward slash
所以想检查 non RAC
环境是否支持 forward slash
。
对于RAC
的环境URL是这样的
jdbc:oracle:thin:@<host>:1521/<SERVICENAME>
更新
这是一个不同的问题,因为我想问是否可以同时使用(:
和 /
,同时在我们称为OracleJDBCUrl
的连接字符串中使用<SID>
。
【问题讨论】:
@JSapkota 所以这意味着non RAC
中的 /
连接到数据库,所以哪个是正确的,我坚持这一点。我的意思是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 强制加密网络流量?
如何使用带有 TNSNames 别名语法的 JDBC 瘦驱动程序连接到 Oracle 数据库