gopinathPalani Ответов: 1

Нужно импортировать плоский файл с разным разделом с разными столбцами в нем


У меня есть плоский файл с разделителями '|' с различными столбцами в 3 разных разделах.

Каждый раздел определяется значением во втором столбце.

Я должен прочитать этот файл и загрузить его в таблицу через SSIS.

Было бы лучше, если бы кто-то предоставил решение для этого.

Пожалуйста, ознакомьтесь с приведенными ниже образцами данных

Выборочные данные:
UPD|1|123|20180502|ДЖОН|20180502
UPD|1|345|20180502|ПИТЕР|20180502
УПД|2|456|20180502|Х|А
УПД|2|912|20180502|Г|В
UPD|3| |257|20180502|X|A
UPD|3| |756|20180502|Y|A


Если вы заметили, что в 3-м разделе есть дополнительная колонка. Только в разделе 3 у нас есть 7 столбцов, но в остальной части раздела у нас есть только 6 столбцов.

Мне нужен такой выход:

UPD 1 123 20180502 JOHN 20180502
UPD 1 345 20180502 ПИТЕР 20180502
UPD 2 456 20180502 X A
UPD 2 912 20180502 Y A
UPD 3 257 20180502 X A
UPD 3 756 20180502 Y A

Что я уже пробовал:

Если я читаю этот файл через file_file_source в ssis, то данные поступают следующим образом: плоский файл рассматривает только 6 столбцов, а для раздела 3 значение 7-го столбца отображается в самом 6-м столбце.

UPD 1 123 20180502 JOHN 20180502
UPD 1 345 20180502 ПИТЕР 20180502
UPD 2 456 20180502 X A
UPD 2 912 20180502 Y A
UPD 3 257 20180502 X|A
UPD 3 756 20180502 Г|Д

Для раздела 3 последнее значение столбца отображается как "X|A".

Любая помощь будет очень признательна. Заранее спасибо.

С уважением,
Гопинатх

W∴ Balboos, GHB

Возможно, поскольку у вас также есть доступный c#, вам следует прочитать плоский файл и использовать String.Split() на нем? Затем вы можете вставить его в уже существующую таблицу и покончить с этим.

1 Ответов

Рейтинг:
0

Hiske Bekkering

Привет Гопинатх,

Это старый вопрос, так что вы, возможно, уже нашли ответ в другом месте. Если нет, то взгляните на мою статью о динамическом сопоставлении столбцов: Динамическое сопоставление столбцов файлов в службах SSIS. - SQLServerCentral[^]

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

С уважением,

Hiske