Загрузка 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 на двойные кавычки, то это было прекрасно.

Это можно сделать из преобразования производного столбца, выполнив следующие шаги:

  1. В Диспетчере соединений с плоскими файлами выберите формат "Ragged Right", а не разделенный. Таким образом, ваши данные будут поступать в один столбец
  2. выберите производное преобразование столбца. создайте 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]))
    

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

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