代码之家  ›  专栏  ›  技术社区  ›  Sudha Bisht

如何在表输入中传递参数?

  •  1
  • Sudha Bisht  · 技术社区  · 7 年前

    1. 转换获取传递给另一个转换的数据列表。在这里,它对第一次转换的每一行传递执行。

    2. 在第二个转换中,我使用了

      “从结果中获取行”->“表格输入”

    在“从结果获取行”中有五个字段,但在表输入中,我只能使用第2位和第3位字段。

    即使我试着给出一个参数“?”它的给定错误

    2017年6月29日15:11:02-从表格中获取数据。0-在准备好的语句上设置值#3[字符串]时出错 "

    我的问题很简单

    2 回复  |  直到 7 年前
        1
  •  6
  •   AlainD    7 年前

    select * from table where col1="${param2}" and col2="${param3}"

    不要忘记选中“在脚本中替换变量”复选框,并根据您的sql方言调整引号(例如: '${param1}' 对于SQL Server)。

    param2 param3 必须存在于转换的设置/参数中,没有 ${...}

    可以在以前的转换中使用 Set variables 步骤(变量和参数在一阶近似中是同义的)和至少一个范围 Valid in the parent job .

    当然,如果出于遗留目的或任何其他原因坚持使用未命名参数,您有责任告诉PDI第一个参数将被丢弃(例如 where (? is null or 0=0) and col1=? and col2=? .

        2
  •  2
  •   nsousa    7 年前

    因此,如果您有5个字段,并且只使用其中的2个字段,那么最好的方法是在从结果获取行和表输入之间放置一个select values步骤,并且只让实际的查询参数通过。