У меня есть ситуация, когда наш клиент предоставил плоский файл (.csv
) для загрузки в таблицу SQL Server с помощью SSIS.
Этот огромный необработанный файл .csv
(около 400 000 записей) не имеет правильного формата csv, в частности, в нем нет двойной кавычки (") ни в заголовке имени столбца, ни в данных строки. См. пример ниже:
ColumnName 1, ColumnName 2, ColumnName 3,....
Z , 342343242424 , 10.83 , 000001001765 , 2018-12-03 , 2018-12-03 , ABCD , **XYZ,** , CA , 001 , 00 , ?
(Это экземпляр строки данных с именами заголовков столбцов как Столбец 1, Столбец 2,... В этом файле с расширением .csv вообще нет двойных кавычек (").
Я использую Visual Studio 2017 для работы в SSIS.
Как видите, значение данных XYZ, желательно как XYZ, в одной ячейке; вместо этого я вижу XYZ в одной ячейке и пробел в соседней ячейке справа. (В настоящее время я отлаживаю ошибки с помощью средства просмотра данных.)
Каждая ячейка сдвигается на одну позицию вправо. В последнем столбце справа я получаю следующее: 00 , ? в одной ячейке.
На странице «Редактор диспетчера соединений с плоскими файлами SSIS — общая» я установил следующие свойства:
Format: Delimited
Text Qualifier: none
Header row delimiter: {CR}{LF}
Я понятия не имею, как загрузить такой неправильно отформатированный файл .csv
(без двойных кавычек ("")).
Есть ли способ загрузить правильно? Может быть, изменить файл на текстовый файл или что-то в этом роде.
Мне сказали, что это файлы Cobol (Mainframe) с фиксированной шириной для каждого столбца.
Для каждого заполнителя также существует определенная ширина (т. е. пробел (включая запятую) между соседними значениями). Мне дали документ спецификации с такой информацией ниже:
Field Name Start Width
-----------------------------------------
ColumnName1 1 26
FILLER 27 5
ColumnName2 32 19
FILLER 51 5
ColumnName3 56 21
FILLER 77 5
.
.
.
.
Любое предложение будет оценено.