从头读取逗号分隔的值

  • 本文关键字:分隔 读取 dml ab-initio
  • 更新时间 :
  • 英文 :


对于具有 1,2,34,43,66 等数据的输入文件,我的DML应该是什么

当我把下面DML时我面临的问题

record decimal(",") val; end;

是最后一个数字没有被正确读取。

有没有办法仅使用输入文件组件来读取此内容。

您只描述了一个数值字段,但您有 5 个字段

"新行"(新记录(也应该描述

您是否正在使用 BRE ? 您可以在 BRE 中创建DML

您可以尝试以下DML,我想它应该可以工作:

record
decimal(",") val1;
decimal(",") val2;
decimal(",") val3;
decimal(",") val4;
decimal(",") val5;
string("n") newline = NULL;
end

我想你想把每个数字都读成一条记录。问题是:数据不符合你的愿望,最后一个数字不是用","分隔的。

如果无法更改数据,则可以使用以下方法读取单个记录中的所有输入:

record
string("n") val;
end

然后使用规范化组件拆分记录:

out :: length(in) =
begin
out :: length_of(string_split(in.val, ","));
end;
out :: normalize(in, index) =
begin
let string(";")[5] my_vec;
my_vec =  string_split(in.val, ",");
out.val :: decimal_lpad( my_vec[index], 5 );
end;

(可能有更好的解决方案,我仍然不是专家,但还没有答案(

相关内容

  • 没有找到相关文章

最新更新