bulkloaderでUTF-8のファイルをアップロードするときの注意
bulkloaderでUTF-8のファイルをアップロードする際は、BOMなしにすること!
BOMありにすると、ファイルの先頭のデータが認識されなくなる。
この現象を発見した経緯
(1)アップロードさせたいテストデータをExcelで作成し、CSVファイルとして保存。
(2)bulkloader.yaml にて、
connector_options: encoding: utf-8 columns: from_header
として取り込ませたところ、文字コードに由来すると思われるエラーが発生。
(3)ExcelからただCSV形式で保存すると、シフトJISになるため、VBAマクロにてUTF-8で保存するように変更。ADODB.Streamを使用した。
(4)再び取り込ませたところ、取込みは正常終了したが、テストデータの特定の列のデータだけが全てNULLとなってしまう。
(5)bulkloader.yamlの記載ミスを疑ったがミスなし。いろいろ悩んだ末、ためしに列の順番を変えて試したところ、どんな順番であっても、常に1列目のデータが取り込まれないことが判明。
(6)ADODB.Streamで、Encoding="utf-8"としてWriteTextすると、BOM付きで保存されることがわかったため、BOMなしで(=先頭3バイトを除外して)保存するように変更。
(7)正常に取り込まれた。