我DML
的输入文件应该是什么数据,如 1,2,34,43,66
当我把下面的问题放在下面时我面临的问题DML
record
decimal(",") val;
end;
是最后一个数字没有被正确读取。
有没有办法只使用输入文件组件来读取它。
您可以尝试以下 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;
(可能有更好的解决方案,我仍然不是专家,但还没有答案)
您只描述了一个数字字段,但您有 5 个字段
“new line”(新记录)也应该被描述
你在使用 BRE 吗?你可以DML
在 BRE 中创建