因 Informatica 的 bug,转而使用 Kettle。
今天第一次使用,找了一下才知道 Kettle 的主程序启动方式:运行 data-integration\Spoon.bat。
启动之后,发现配置数据库的时候连接不上数据库,总是报错。于是检查驱动,首先发现 Kettle 默认不带 Oracle 驱动。于是我把 Oracle 的 JDBC 驱动 ojdbc5.jar/ojdbc6.jar 放到了 Kettle 的目录data-integration\libext\JDBC 下,又用 PL/SQL 账号登录了一下数据库,确定账号没问题。重新启动 Kettle 配置还是报错。
org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database
Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
在网上搜索了一下,才发现原来 Kettle 使用的数据库名是“SID_NAME” 而不是 PL/SQL 的 “SERVICE_NAME”,于是使用 PL/SQL 连上数据库:
select INSTANCE_NAME from v$instance;
把这个名称填到 Kettle 的 "Database Name" 中,测试一下子就 OK 了。原来如此。