Загрузка CSV-файла, разделенного запятыми, в таблицу в SSIS
У меня есть CSV-файл с данными ниже отформатирован.
Файл: Sample.csv
Id, имя, адрес
1, Abcd, street1,3rdcross, хххх
2, CFRE, 2ndmain, 3rdstreet, YYY
3, Asdf, 4thmain, 1stcross, ZZZ
Необходимо загрузить данные в таблицу, как показано ниже.
Таблица: образец
Идентификатор Имя Адрес
1 Abcd Street1,3rdcross, XXXX
2 Cfre 2ndmain, 3rdstreet, yyy
3 Asdf 4thmain, 1stcross, ZZZ
Как добиться этого с помощью SSIS?
Если мы используем запятую, то адресный столбец будет разделен на 3 столбца.
3 ответа
Если ваши данные состоят из 5 столбцов, но заголовок отсутствует, пропустите строку 1 и назовите столбцы так, как вы хотите.
Возможно:
Id,Name,Address,Directions,[Blah]
Если вы действительно хотите положить их обратно в ","
поле с разделителями, как вы указали, затем использует производный столбец и объединение.
new column = Address + "," + Directions + "," + [Blah]
Первоначально, когда Text Qualifier установлен в none, столбцы разделяются.
Когда меняли Text Qualifier на двойные кавычки, то это было прекрасно.
Это можно сделать из преобразования производного столбца, выполнив следующие шаги:
- В Диспетчере соединений с плоскими файлами выберите формат "Ragged Right", а не разделенный. Таким образом, ваши данные будут поступать в один столбец
выберите производное преобразование столбца. создайте 3 столбца в этом преобразовании с помощью приведенной ниже формулы:
ID - SUBSTRING([Id,Name,Address],1,FINDSTRING([Id,Name,Address],",",1) - 1) Name - SUBSTRING([Id,Name,Address],FINDSTRING([Id,Name,Address],",",1) + 1,FINDSTRING([Id,Name,Address],",",2) - FINDSTRING([Id,Name,Address],",",1) - 1) Address - SUBSTRING([Id,Name,Address],FINDSTRING([Id,Name,Address],",",3) + 1,LEN([Id,Name,Address]))
Вот как вы можете получить три отдельных столбца из текстового файла.