Microsoft SSIS - загрузка плоского файла (.csv) с несколькими запятыми (,) и без двойных кавычек (") - в таблицу SQL Server - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть ситуация, в которой наш клиент дал плоский файл (.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
.
.
.
.

Любойпредложение будет оценено.

...