SSIS 2014 — назначение плоского файла с разным количеством столбцов

У меня есть пакет SSIS (SQL 2014), который загружает данные из таблицы в плоский файл. В файле 5 столбцов, однако в моем наборе данных есть одна строка, которая используется системой для проверки дубликатов, и требуется 3 столбца вместо 5.

How my file looks like now:
ID|Desc|UDF1|UDF2|UDF3
DUPECHECK|SaysSomethingIrellevant|||
ID1|Desc1|||
ID2|Desc2|||

How I want my file to look:
ID|Desc|UDF1|UDF2|UDF3
DUPECHECK|SaysSomethingIrellevant|
ID1|Desc1|||
ID2|Desc2|||

Вы можете видеть, что во второй строке файла должно быть другое количество столбцов, чем в остальных строках. Как я могу это сделать?


person Pops    schedule 14.11.2016    source источник
comment
Я могу ошибаться, но насколько я знаю, это вообще невозможно! Должна быть та же логика, что и с таблицами: каждая строка таблицы имеет одинаковое количество столбцов. В любом случае, если вам нужна эта конкретная структура, я бы предложил создать компонент сценария в качестве места назначения и записать оттуда плоский файл.   -  person Tyron78    schedule 14.11.2016
comment
Я надеялся, что есть причудливый обходной путь, в котором мне не нужно использовать задачу сценария, но спасибо за вклад.   -  person Pops    schedule 14.11.2016


Ответы (1)


Ты не можешь сделать это. Единственный способ, которым я это сделал (мне пришлось написать файл со строкой заголовка и строкой нижнего колонтитула с разным количеством столбцов), — это либо записать все (все столбцы) в строку с одним столбцом, либо написать три разных txt файлы, а затем объедините эти три файла с помощью файла bat.

person benjamin moskovits    schedule 14.11.2016
comment
Спасибо, я смог сделать это в SSIS, используя комбинацию обоих ваших предложений. Я сделал 3 потока (один для строки заголовка, один для строки DUPLICATE, один для остальных записей), затем я добавил трубы в производный столбец, затем я использовал объединение, чтобы объединить все в один столбец, который единственный столбец в моем плоском файле. - person Pops; 14.11.2016