在 pentaho 中执行 SQL 步骤
Posted
技术标签:
【中文标题】在 pentaho 中执行 SQL 步骤【英文标题】:Execute SQL step in pentaho 【发布时间】:2015-02-16 04:42:11 【问题描述】:我创建了转换,包括表格输入、sql 步骤和 excel o/p 步骤。
表格输入-->运行查询并获取包含sql查询select * from dual
的字段“查询”
执行 sql 步骤-->使用 '?' 动态传递该查询字段并启用变量替换
Excel o/p-Expecting o/p是应该触发sql查询并在excel o/p中得到结果
但我无法从执行 sql 步骤中获取字段。我该怎么做???
谢谢 卡维莎S
【问题讨论】:
你能附上ktr吗?以便我们检查问题所在。 【参考方案1】:使用Database join
而不是Execute SQL step
。 Database Join
步骤允许您使用从先前步骤中获得的数据对数据库运行查询。
Database join
输入:您可以在步骤内定义的 SQL 查询中使用 ?
表示法从上一步中传递您想要的任何数据。
Database join
输出:执行参数化 SQL 查询并添加新参数作为输出。
这一步是您第二步所需要的。查看有关Database join step in the documentation 的更多信息。
【讨论】:
【参考方案2】:在 PDI 中,“执行 SQL 步骤” 不用于生成行。它不会向数据流添加任何额外的行。你得到了表格输入步骤来生成多行。
您可以尝试的替代方法是将转换分为两部分。
第 1 部分: 表格输入步骤 >(生成查询行)>> 使用“设置变量”或“将行复制到结果”到其他一些步骤以将查询设置为某个变量,例如: query
.
第 2 部分: 采取另一个表格输入步骤(进入下一个 .ktr 文件)并使用 $query
的变量替换 >> 最后将结果集输出到excel 输出。
对于动态sql查询,可以阅读这个blog。
如果您对生成的查询有一些查找,可以使用Dynamic SQL row 来生成行。
希望对你有帮助:)
【讨论】:
以上是关于在 pentaho 中执行 SQL 步骤的主要内容,如果未能解决你的问题,请参考以下文章