Как автоматизировать экспорт нескольких таблиц в текст с разделителями в SSIS?

Я пытаюсь создать какую-то автоматизацию, с помощью которой я могу ежемесячно генерировать серию текстовых извлечений с разделителями вертикальной черты для примерно 100 различных таблиц. Каждая выдержка будет основана на простом запросе, подобном этому:

SELECT *
FROM tablename
WHERE AsOfDate = 'currentmonth'

где и имя таблицы, и текущий месяц будут переменными. Имя переменной tablename изменится для каждой из таблиц, но текущий месяц останется неизменным на протяжении всего выполнения.

Я пытался создать пакет SSIS, который использует контейнер цикла ForEach, который проходит через список всех имен таблиц и передает эту переменную в строку SQL, которая затем используется источником данных OLE DB в потоке данных.

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

Есть ли какой-либо реальный способ сделать это, кроме ручной настройки процесса для каждой из более чем 100 таблиц?


person RMQ1447    schedule 12.05.2017    source источник
comment
Я думаю, вам нужно создать разные DataFlowTask для каждого файла.   -  person observer    schedule 12.05.2017


Ответы (1)


Вы можете изучить BiML, который программно создает ваши потоки данных на основе метаданных.

Или вы можете использовать задачу «Скрипт», которая перебирает таблицы, перебирает их столбцы и создает текстовые файлы вместо того, чтобы вообще использовать какой-либо поток данных.

person Tab Alleman    schedule 12.05.2017