我想从数据流中的现有字段动态创建一个变量(不是新字段),然后修改该变量。
原因是,我需要用单引号 '
括住可以在 Sql 语句的 IN
子句中使用的字符串列表。 Kettle 消除了字段中的单引号,但它们保留在变量中。我最好的猜测是在修改后的 Java 脚本中使用 setVariable,但从那里我被难住了。
最佳答案
我必须没有足够的代表来将文件附加到答案中。太糟糕了,因为我有一个 ktr 可以很好地做到这一点。
我首先将“'”作为新字段添加到行中。然后,我将包含要转换为列表的值的行传递到“分组”步骤中。我选择“串联字符串”的聚合,并使用值 ','
,并为结果指定一个新名称,例如“list”。
然后,我将该结果行传递到计算器步骤,其中计算为 A + B + C。我为值 A 和 C 指定“'”字段,为值 B 指定列表字段。然后将该结果传递给设置变量步骤。
在父作业中,我得到一个看起来正如您所期望的变量:'val1','val2','val3'
。无需 JavaScript。
关于javascript - Pentaho Kettle 修改的 Java 脚本 setVariable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071245/