Pentaho 从 table 输入中获取变量以在 sql 脚本中使用它

Pentaho get variables from table input to use it in sql script

我正在尝试从 table 输入获取变量,table 输入 return 此数据:

  1. 身份证、姓名
  2. 身份证、姓名
  3. .., ...
  4. 身份证、姓名

我想使用此数据获取其他 table 输入中的其他数据:

select id, name, date, 来自 table 的噩梦 where id = ${ID} and name = ${name}

或更好:

select ID、姓名、日期、来自 table 的噩梦,其中 ID 在 ${ID} 中,名称在 ${name}

注意: - ${..} -> 变量 - 我不能做子查询,每个查询都在不同的 dbms

谢谢

您所追求的不是变量,它需要在转换初始化之前设置并且始终是单个值。

你在寻找参数。

你的 Table input1 returns 几行数据,字段为 idname;您将它连接到一个新的 Table 输入,您希望在其中传递这些值,例如,在 where 子句中:

select * from customers where id = ? and name = ?

问号将替换为来自上一步的值。

您只需要在方框"Insert data from Step"中填写第一步的名称并勾选"Execute for each row"方框即可。

现在您的查询将为到达该步骤的每一行 运行 一次,并且值将被替换。

警告:

  • 每个参数只使用一次;
  • 它们将按照到达的顺序传递;
  • 查询中必须使用所有传入字段。

如果您需要多次使用相同的参数或以不同的顺序使用它们,您需要使用 Select 值步骤更改传入数据流的结构。