在kettle中有一个非常实用的功能Copy Tables Wizard,可以成批地把表从一个连接导入到另一个连接,特别是在异构数据库之间进行数据迁移非常好用。
但这个功能有个小BUG,在导表的时候,目的数据库中新建表的表名都自动加上了源数据库的SCHEMA名,这样数据虽导过去了,但表名却走样了。
感谢KETTLE,它是开源的,因此我们修改KETTLE的源代码,再重新编译,就可以解决这个问题
涉及到的源代码是:org.pentaho.di.core.database.Database.java 中的这一句:
原代码:
if (includeSchema) schemaTable = databaseMeta.getQuotedSchemaTableCombination(schema, table);
else schemaTable = table;
修改一下if条件,即可,修改后的代码:
if (!includeSchema) schemaTable = databaseMeta.getQuotedSchemaTableCombination(schema, table);
else schemaTable = table;
编译后,再来试试,讨厌的SCHEMA前缀没有了
我使用的版本是3.0.2,不知新版本有没修复这个问题