我制作了一个脚本来导入 CSV 文件。
它工作完美,但是当我将其导入临时表时,临时表中的最后一条记录是空的。我已经检查了 CSV 三次,它不包含任何空行。
这是我的代码:
INPUT STREAM sEaImport FROM VALUE(cCsvEaFileLocation).
/* Skip first line to remove the headers */
IMPORT STREAM sEaImport DELIMITER ";" vcline.
REPEAT:
CREATE ttEa.
IMPORT STREAM sEaImport DELIMITER ";" ttEa.
END.
INPUT CLOSE.
FOR EACH ttEa:
DISPLAY ttEa.
END.
当我在 REPEAT block 之外显示 ttEa 时,我得到一个空记录,如下所示:
当我在 REPEAT block 内显示 ttEa 时,我没有得到空记录。
有人可以帮我吗?
使用它仍然给我相同的结果:
INPUT STREAM sEaImport FROM VALUE(cCsvEaFileLocation).
/* Skip first line to remove the headers */
IMPORT STREAM sEaImport UNFORMATTED vcline.
REPEAT on error undo,leave on endkey undo,leave:
CREATE ttEa .
IMPORT STREAM sEaImport DELIMITER ";" ttEa.
END.
INPUT STREAM sEaImport CLOSE.
最佳答案
确保您的临时表上没有 NO-UNDO
语句。然后将 REPEAT
语句更改为 REPEAT TRANSACTION
。最后一次迭代将尝试创建 ttEa 记录但失败。由于它现在处于事务中,因此创建将被撤消(这就是为什么您不能在临时表上使用 NO-UNDO
),并且空白记录将消失。
关于csv - 最后导入的行为空 输入流进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159339/