设置字段值步骤是将一个字段的值按行级替换为另一个字段的值。此步骤的所有字段都支持元数据注入。可将此步骤与ETL元数据注入一起使用,以在运行时将元数据传递给转换。该步骤配置信息如图1所示:
图1步骤配置信息
下文详细解释各控件的含义:
1、转换步骤名称:步骤的名称,在单一转换中,名称必须唯一。
2、字段:该控件包含“字段名称”和“用字段中的值替换”两列,“字段名称”显示具有可替换值的源字段,“用字段中的值替换”指替换源字段值的目标字段。这两列中的可选字段都是从上一步骤中输入的元数据。如输入“varchar-a”和“varchar-b”两个字段。在“字段名称”中选择字段“varchar-a”,在“用字段中的值替换”选择字段“varchar-b”,执行转换时,字段“varchar-a”中的值会替换为字段“varchar-b”的值。如果将已被替换值的字段作为另外一个字段的目标替换值会产生什么样的效果呢,且看如下案例:
有如下图2所示的三个字段:
图2输入表结构
图3步骤设置
为了简洁,图2中字段分别用a、b、c来描述,如果将字段a的值替换为b,字段b的值替换为c,字段c的值替换为a。那么最终c字段的会是什么呢,执行上图3中的转换来验证一下吧。结果如下图4所示,字段a的值替换为了字段b,字段b的值替换为了字段c,字段c的值替换为了字段b。原来该步骤会按行顺序按个执行替换后再执行下一行中的设置。在第一行中字段a的值已经被替换为了字段b的值,所以第三行中字段c的值实际上也会被替换为字段b的值。
图4输出表结构
3、获取字段:点击获取字段,会自动将下一步骤中输入的元字段填充到“字段名称”列。
注:
(1)在“字段名称”列中选择了字段后,则“用字段中的值替换”列中必须选择一个字段与其对应,不能为空,也不能自定义输入,否则会报错。
(2)两列可设置为相同字段,也可执行通过。
(3)被设置的两列字段必须为相同类型的字段,否则会报错。
文章原创首发于:https://ckettle.ccsaii.com.cn/help/StepPluginType/SetValueField?s=csdn
更多CKettle,欢迎点击上述链接学习。