2013-10-27 4 views
3

У меня есть некоторые файлы CSV, которые отображаются ОК в «Блокноте» и «Excel», однако, похоже, в них есть дополнительные строки, когда я просматриваю их в VS2010 или Notepad ++ , При попытке обработать их в SSIS, файлы сбой с ошибками, как это:SSIS: не удается обработать строки в CSV (разделитель столбцов не найден)

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

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

enter image description here

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

+0

Ваши данные выглядят поврежденными. Почему в одной строке есть три значения? Я бы предположил, что недостающая запятая в конце 'ABCDE' бросает эту ошибку, поскольку она является разделителем столбцов. – TsSkTo

+0

Нет недостающей запятой. Извините: я просто нарисовал произвольную строку с небольшим подмножеством данных, так как я не мог показать все 49 столбцов данных. Что-то, но я не уверен, что вызывает линейный фид, но Excel обрабатывает его без проблем. SSIS дросселирует. – PeterX

+0

Я предполагаю, что вы используете источник плоского файла для импорта. Затем столбцы предопределены. Точно так же разделители столбцов и разделители строк. Если вы определяете файл с двумя столбцами с разделителем разделителей запятой и разделителем строк LF, то в плоском файле всегда будет ** ожидать эту комбинацию символов 'foo, bar * LF *' – TsSkTo

ответ

0

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

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

Что делать, если нужны линии возврата каретки? –

1

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

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