我想从数据库中获取所有表名,然后从表中获取所有行。所以我创建了这样的转换:
- 获取表名称:添加数据库连接并将表名称存储在名为“tablename”的输出字段中。
- 表输入:标记为“替换脚本中的变量”和“对每行执行”。添加了“从步骤插入数据”中的第一步。 SQL 是“SELECT * from ?”。
我在网上读了很多教程,包括文档 http://wiki.pentaho.com/display/EAI/Table+Input.
我的问题是到处都说我是“?”应替换为参数。但这并没有发生。这是日志:
2013/06/22 03:33:25 - 获取表名称。0 - 开始运行...
2013/06/22 03:33:25 - Postgres 9.1.9 RO - 从数据库元数据中读取: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 - 表 input.0 - 错误(版本 4.4.0-stable,由 buildguy 于 2012-11-21 16.02.21 构建 17588):意外错误
2013/06/22 03:33:25 - 表 input.0 - 错误(版本 4.4.0-stable,由 buildguy 于 2012-11-21 16.02.21 构建 17588):org.pentaho.di.core.exception。 KettleDatabase异常:
2013/06/22 03:33:25 - 表 input.0 - 错误(版本 4.4.0-stable,buildguy 从 2012-11-21 16.02.21 开始构建 17588):执行 SQL 时发生错误:
2013/06/22 03:33:25 - 表 input.0 - 错误(版本 4.4.0-stable,由 buildguy 从 2012-11-21 16.02.21 构建 17588):从 SELECT *
2013/06/22 03:33:25 - 表 input.0 - 错误(版本 4.4.0-stable,buildguy 从 2012-11-21 16.02.21 开始构建 17588):错误:“$1”处或附近的语法错误
位置:16
2013/06/22 03:33:25 - 表 input.0 - 错误(版本 4.4.0-stable,buildguy 从 2012-11-21 16.02.21 开始构建 17588):
为了解决您的情况,我更喜欢使用作业,请找到 {kettle_intalation_folder_path}/examples/jobs/process all table/Process all table.kjb,因为您的案例是该示例的简化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)