对于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)))