19c中新增的 v$services可以查询各PDB对应的服务名,根据此服务名去写JDBC的连接参数。
而非19c中常用的v$database视图显示的是CDB的库名。
还有 show paramerter service_name
在JDBC的连接串三种方式之一:
jdbc:oracle:thin:@//:/ServiceName
此处的ServiceName笔者认为应该从 v$services中获取。
在使用SID连接时
jdbc:oracle:thin:@::
在11g的RAC中是可以选择一个SID连接的。但是在19c可插拔式数据库中,v$instance显示的是不能用的。
11g环境下
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Connected as SYS
SQL> show parameter service_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string qsrac
SQL>
select t.name from v$database t
QSRAC
select t.instance_name from v$instance t
qsrac2
使用PLSQL Developer连接时参数为:
IP:port/service_names
综上:1、19c可插拔式数据库中。JDBC连接参数从vservices中取,使用jdbc:oracle:thin:@//<host>:<port>/ServiceName作为连接方式。2、11g环境中,既可以使用jdbc:oracle:thin:@//<host>:<port>/ServiceName也可以使用jdbc:oracle:thin:@<host>:<port>:<SID>。且ServiceName和SID可通过showparameterservicename和selectt.instancenamefromvservices中取,使用jdbc:oracle:thin:@//<host>:<port>/ServiceName 作为连接方式。 2、11g环境中,既可以使用jdbc:oracle:thin:@//<host>:<port>/ServiceName 也可以使用jdbc:oracle:thin:@<host>:<port>:<SID>。 且ServiceName和SID可通过show parameter service_name和select t.instance_name from vservices中取,使用jdbc:oracle:thin:@//<host>:<port>/ServiceName作为连接方式。2、11g环境中,既可以使用jdbc:oracle:thin:@//<host>:<port>/ServiceName也可以使用jdbc:oracle:thin:@<host>:<port>:<SID>。且ServiceName和SID可通过showparameterservicename和selectt.instancenamefromvinstance 获取
本文探讨了在Oracle 19c和11g环境中,JDBC连接的差异。在19c中,由于引入了可插拔式数据库,推荐使用v$services查询服务名来构建JDBC连接串,格式为jdbc:oracle:thin:@//:<host>:<port>/ServiceName。而在11g中,既支持ServiceName连接也支持SID连接,ServiceName和SID可以通过show parameter service_name和v$database/v$instance获取。总结了不同版本下JDBC连接参数的选择和配置方法。

5856

被折叠的 条评论
为什么被折叠?



