CSVファイルをインポートするスクリプトを作成しました。最後にインポートされた行が空の入力ストリームの進行中です
しかし、それは私が一時テーブルにインポートすると、私の一時テーブルの最後のレコードは空のものです。私は3倍の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ブロックの外側でttEaを表示すると、私はこのような空のレコードを取得:私はREPEAT内ttEaを表示すると
をブロック私は空のレコードを取得しません。
誰か助けてくれますか? CSVファイルの末尾に
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.
私は、あなたが空のレコードを作成していると思い、ループがEOFを上げるIMPORTによって壊れていると思うので、あなたのリピートにON ERROR UNDO、LEAVE句が必要だと思います。ただし、エラーが発生するまでにすでに空白のレコードが作成されています。最後の作成を元に戻す場合を除いて、空のレコードが作成されます。 (これはERRORではなくENDKEYかもしれませんが、あなたはアイデアを得ます) – Screwtape
私は今これを持っていますが、私はまだ同じ結果を得ています...私は質問 –
を更新しました。テンポラリテーブルをno-undoとして定義していないのですか? – Screwtape