我想从数据库中获取所有表名,然后从表中获取所有行。所以我创建了这样的转换:
2013/06/22 03:33:25 - 获取表名0 - 开始运行...
2013/06/22 03:33:25 - Postgres 9.1.9 RO - 读取:来自db元数据的9个表名 2013/06/22 03:33:25 - 表输入0 - 找到的查询参数= [stackexchange2]
2013/06/22 03:33:25 - 表输入0 - SQL查询:SELECT * from?
2013/06/22 03:33:25 - 表输入0 - 错误(版本4.4.0-稳定,从2012-11-21 16.02.21由buildguy构建17588):意外错误
2013/06/22 03:33:25 - 表输入0 - 错误(版本4.4.0-稳定,从2012-11-21 16.02.21由buildguy构建17588):org.pentaho.di.core.exception。 KettleDatabaseException:
2013/06/22 03:33:25 - 表输入0 - 错误(版本4.4.0-稳定,从2012-11-21 16.02.21由buildguy构建17588):执行SQL时发生错误:
2013/06/22 03:33:25 - 表输入0 - 错误(版本4.4.0-稳定,从2012-11-21 16.02.21由buildguy构建17588):SELECT * from?
2013/06/22 03:33:25 - 表输入0 - 错误(版本4.4.0-稳定,从2012-11-21 16.02.21由buildguy构建17588):错误:语法错误在“$ 1”或附近
职位:16
2013/06/22 03:33:25 - 表输入0 - 错误(版本4.4.0-稳定,从2012-11-21 16.02.21由buildguy构建17588):
更新
我只是想做这个工作。我现在正在学习这个工具,知道怎么样会很好吗?作品。
答案 0 :(得分:2)
为了解决您的情况,我更喜欢使用工作,请查找{kettle_intalation_folder_path} / examples / jobs / process所有表/处理所有tables.kjb,因为您的案例是该示例的简化。
答案 1 :(得分:0)
实际上你可以做到这一点,你绝对会这样做。看一下“元数据注入”。
此外,您无法参数化表名 - jdbc不允许这样做。但是,如果您真的想要,可以使用SQL步骤而不是表输入,并在字段中生成整个SQL字符串。虽然不是真的会推荐。
如上所述,请进一步描述您正在尝试做的事情。如果您只是在不对数据进行任何转换的情况下迁移数据库,即从一个数据库转移到另一个数据库,那么就不要打扰Kettle,因为这不是它的用途。