对于jdbc 连接数据库时,url兼容两种模式如下:
1、"jdbc:oracle:thin:@127.0.0.1:1512:pdb"
2、"jdbc:oracle:thin:@127.0.0.1:1512/pdb"
第1中模式端口后使用的是“:” 那么pdb代表的是数据库的实例名 一般情况数据库都是多实例的
第2中模式端口后使用的是“/” 那么pdb代表的是数据库的服务名
如果使用第1中模式,将pdb错误的填为服务名就会报错,显示错误,kettle就是因为这个原因报错。

查看生成的url信息确实使用了:

解决方法:
主机名称、端口填空
数据库名称按照如下格式填写如图:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME=dvs1)))

验证:URL变为了这种形式 jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME=dvs1)))

本文详细解析了使用JDBC连接Oracle数据库时,URL配置的两种模式及其区别。第一种模式使用“:”分隔端口号和实例名,第二种模式使用“/”分隔端口号和服务名。文章还介绍了当使用第一种模式时,如何正确配置数据库名称以避免错误,并提供了一种解决方案。
2万+

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



