Условие SSIS разделено на основе значения столбца

Добрый день всем,

У меня есть запрос на выборку, где я получаю данные из SQL, т.е.

select invno , date_received from sales

То, что я хочу сделать, это разделить файл на несколько файлов с помощью условного разделения. Я не знаю, как установить условие, которое я пробовал, как показано ниже введите описание изображения здесь

Но он просто создает один файл, как мне создать несколько файлов на основе значения столбца, если я не знаю, каким будет значение столбца?

Также я хотел бы назначить значение столбца, т.е. INVNO, для имени файла, а также, чтобы предотвратить перезапись файлов

1 ответ

Решение

Используя готовые компоненты, лучше всего иметь что-то подобное

Задача "Выполнение SQL" вернет полный набор результатов переменной SSIS типа Object. Ваш запрос будет генерировать отдельный набор INVNO. SELECT DISTINCT T.INVNO FROM dbo.Sales AS T;

Контейнер цикла по каждому элементу затем собирается "уничтожить" этот набор записей в единственном экземпляре нашего INVNO. Это требует, чтобы у вас была переменная, вероятно, типа String, чтобы получить это число.

Задача потока данных будет иметь в качестве исходного запроса параметризованный запрос. Предположим, диспетчер соединений OLE DB, это было бы select INVNO, date_received FROM dbo.Sales AS S WHERE S.INVNO = ?; и затем вы отображаете текущее значение INVNO (назначенное как часть измельчения из FELC)

Наконец, диспетчер соединений с плоскими файлами будет иметь выражение Expression для свойства ConnectionString, которое учитывает полный путь к выходному файлу. Это может быть что-то простое, как "C:\ssisdata\" + @[User::Invno] + ".csv"

Да, и установите DelayValidation = True для диспетчера соединений с плоскими файлами и задачи потока данных.

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