如何根据datastage中的分隔符从单个列中拆分数据?
How to split data from a single column based on the delimiter in datastage?
我想在 Datastage 中执行以下场景。
我有一个名为 source.csv 的源文件,如下所示,
Code_id
100
200
300
100,200,400
现在,我想根据分隔符(,) 拆分第4 行的记录。
预期结果应该是,
Code_id
100
200
300
100
200
400
我已经通过使用 DCOUNT、Field datastage 函数进行了尝试。但是我无法得到我上面提到的确切结果。
任何人都可以指导或提出一些想法来做到这一点吗?
注意:在处理文件之前我不知道分隔符的个数。
这是变压器循环处理的一个很好的例子。
首先使用 COUNT
函数计算分隔符(在您的情况下为逗号)的数量并加 1 来确定列中值的数量。
在您的示例中,您需要处理 2 个逗号和三个值 - 这也是您必须执行的循环次数。
在循环中使用 FIELD
函数提取转换器循环定义中的值 - 使用 @ITERATION(循环计数器)逐一提取值。
使用此解决方案,转换器将输出更多行然后消耗,这将为您提供解决方案。
详细信息和示例请参阅 here
我想在 Datastage 中执行以下场景。
我有一个名为 source.csv 的源文件,如下所示,
Code_id
100
200
300
100,200,400
现在,我想根据分隔符(,) 拆分第4 行的记录。 预期结果应该是,
Code_id
100
200
300
100
200
400
我已经通过使用 DCOUNT、Field datastage 函数进行了尝试。但是我无法得到我上面提到的确切结果。
任何人都可以指导或提出一些想法来做到这一点吗?
注意:在处理文件之前我不知道分隔符的个数。
这是变压器循环处理的一个很好的例子。
首先使用 COUNT
函数计算分隔符(在您的情况下为逗号)的数量并加 1 来确定列中值的数量。
在您的示例中,您需要处理 2 个逗号和三个值 - 这也是您必须执行的循环次数。
在循环中使用 FIELD
函数提取转换器循环定义中的值 - 使用 @ITERATION(循环计数器)逐一提取值。
使用此解决方案,转换器将输出更多行然后消耗,这将为您提供解决方案。
详细信息和示例请参阅 here