Pentaho 从 table 输入中获取变量以在 sql 脚本中使用它
Pentaho get variables from table input to use it in sql script
我正在尝试从 table 输入获取变量,table 输入 return 此数据:
- 身份证、姓名
- 身份证、姓名
- .., ...
- 身份证、姓名
我想使用此数据获取其他 table 输入中的其他数据:
select id, name, date, 来自 table 的噩梦 where id = ${ID} and name = ${name}
或更好:
select ID、姓名、日期、来自 table 的噩梦,其中 ID 在 ${ID} 中,名称在 ${name}
注意:
- ${..} -> 变量
- 我不能做子查询,每个查询都在不同的 dbms
谢谢
您所追求的不是变量,它需要在转换初始化之前设置并且始终是单个值。
你在寻找参数。
你的 Table input1 returns 几行数据,字段为 id
和 name
;您将它连接到一个新的 Table 输入,您希望在其中传递这些值,例如,在 where 子句中:
select * from customers
where id = ? and name = ?
问号将替换为来自上一步的值。
您只需要在方框"Insert data from Step"中填写第一步的名称并勾选"Execute for each row"方框即可。
现在您的查询将为到达该步骤的每一行 运行 一次,并且值将被替换。
警告:
- 每个参数只使用一次;
- 它们将按照到达的顺序传递;
- 查询中必须使用所有传入字段。
如果您需要多次使用相同的参数或以不同的顺序使用它们,您需要使用 Select 值步骤更改传入数据流的结构。
我正在尝试从 table 输入获取变量,table 输入 return 此数据:
- 身份证、姓名
- 身份证、姓名
- .., ...
- 身份证、姓名
我想使用此数据获取其他 table 输入中的其他数据:
select id, name, date, 来自 table 的噩梦 where id = ${ID} and name = ${name}
或更好:
select ID、姓名、日期、来自 table 的噩梦,其中 ID 在 ${ID} 中,名称在 ${name}
注意: - ${..} -> 变量 - 我不能做子查询,每个查询都在不同的 dbms
谢谢
您所追求的不是变量,它需要在转换初始化之前设置并且始终是单个值。
你在寻找参数。
你的 Table input1 returns 几行数据,字段为 id
和 name
;您将它连接到一个新的 Table 输入,您希望在其中传递这些值,例如,在 where 子句中:
select * from customers
where id = ? and name = ?
问号将替换为来自上一步的值。
您只需要在方框"Insert data from Step"中填写第一步的名称并勾选"Execute for each row"方框即可。
现在您的查询将为到达该步骤的每一行 运行 一次,并且值将被替换。
警告:
- 每个参数只使用一次;
- 它们将按照到达的顺序传递;
- 查询中必须使用所有传入字段。
如果您需要多次使用相同的参数或以不同的顺序使用它们,您需要使用 Select 值步骤更改传入数据流的结构。