我在Pentaho PDI中进行了以下转换(请注意SQL语句中的问号):
从工作中调用转换。我需要的是在作业运行时从用户那里获取值并将其传递给转换,以便替换问号。
我的问题是有参数,参数和变量,我不知道使用哪一个。如何使这项工作?
答案 0 :(得分:1)
您可以使用变量或参数。如果您使用的是变量,请使用
${variable1}
您的查询中的语法,如果您想使用参数,那么您必须使用?在您的查询中,并在"字段名称中提及这些参数的名称以用作参数"部分。两者都有效。如果您需要进一步澄清,请告诉我。
答案 1 :(得分:1)
karan的含义是您的sql应该看起来像delete from REFERENCE_DATA where rtepdate = ${you_name_it}
,并选中Variable substitution
框。必须在转换选项中声明you_name_it
参数(单击勺子面板中的任意位置,选项/参数),使用或不使用默认值。
运行转换时,系统会提示您使用面板设置参数值,包括you_name_it
。
参数透明地从作业传递到转换,因此您可以将you_name_it
声明为作业的参数。然后,当用户运行作业时,系统将提示您为参数列表提供值,包括you_name_it
。
实现相同结果的另一种方法是使用参数。问号将替换为Parameters list box
中指定的字段,顺序相同。当然,您使用的字段必须在上一步中定义。在您的情况下,Get variable
步骤,读取调用作业中定义的变量,并将它们排成一行。
请注意,有一个现成的Delete
步骤可以从数据库中删除记录。指定表名(可以是参数:框中只有 Crtl + 空格),表列和条件。该条件将来自参数方法中Get parameter
中定义的上一步。