【问题标题】:Execute SQL step in pentaho在 pentaho 中执行 SQL 步骤
【发布时间】:2015-02-16 04:42:11
【问题描述】:

我创建了转换,包括表格输入、sql 步骤和 excel o/p 步骤。

  1. 表格输入-->运行查询并获取包含sql查询select * from dual的字段“查询”

  2. 执行 sql 步骤-->使用 '?' 动态传递该查询字段并启用变量替换

  3. Excel o/p-Expecting o/p是应该触发sql查询并在excel o/p中得到结果

但我无法从执行 sql 步骤中获取字段。我该怎么做???

谢谢
卡维莎S

【问题讨论】:

  • 你能附上ktr吗?以便我们检查问题所在。

标签: pentaho


【解决方案1】:

使用Database join 而不是Execute SQL stepDatabase 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 来生成行。

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多