SSIS: не удается обработать перевод строки в CSV (разделитель столбцов не найден)

У меня есть некоторые CSV-файлы, которые отображаются нормально в Notepad и Excel, но, кажется, имеют дополнительные переводы строк при просмотре их в VS2010 или Notepad++. Когда я пытаюсь обработать их в службах SSIS, файлы перестают работать с такими ошибками:

Error: 0xC0202055 at Merge Files, Interface [225]: The column delimiter for column "Column 48" was not found.

Вот усеченный пример (около 50 столбцов, и перенос строки выглядит случайным образом в одной и той же позиции):

Вопросы: как Блокнот и Excel открывают эти файлы в порядке (и, по-видимому, игнорируют перевод строки)? Есть ли способ заставить SSIS обрабатывать эти файлы? Может ли это быть настройка служб SSIS на кодовой странице и т. Д.?

2 ответа

Решение

Самым простым решением для нас было поместить вход в таблицу SQL, а затем в последующем потоке данных запросить его обратно без перевода строки в выводе CSV, например

SELECT COLUMN1
       ,REPLACE(REPLACE([COLUMN2],CHAR(10),''),CHAR(13),'') AS [COLUMN2]
FROM TABLE

Для меня открытие файла в Excel, сохранение в виде файла Excel (xlsx, но я уверен, что старый формат xls тоже подойдет), а затем использование источника Excel в SSIS позволило мне загрузить файл в таблицу SQL с таким видом проблема.

Очевидно, что это не будет работать, если вам нужно регулярно загружать файлы такого типа или если таких файлов было много. В этом случае первый ответ будет лучше.

Другие вопросы по тегам