SSIS 2008 - цикл ForEach для просмотра определенной группы / списка файлов

Я искал в Интернете, что, как я думал, было бы прямым вопросом, чтобы ответить. Надеюсь, вы, ребята, можете помочь?

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

Скажем, у меня есть 10 CSV-файлов. называется в списке от А до Я

Я только хочу переместить a,e и j, но, похоже, не могу заставить foreachloop искать эту группу.

В текстовом поле "Перечислитель файлов" я попытался вставить 3 имени файла, разделенных различными разделителями, но SSIS считает, что все это один конкретный файл, и ни один из 3 не перемещается.

Может кто-нибудь посоветовать, как это можно сделать? Просто чтобы подтвердить, я не использую подстановочную логику, просто группу конкретных имен файлов - аналогично функции IN запроса SQL

заранее спасибо

сейчас добавлено img - посоветуйте, пожалуйста, как выделить 3 конкретных файла в текстовом поле со стрелкой

1 ответ

Решение

Поскольку OP не может продолжить только мой комментарий, я объясню немного подробнее -

  1. Используйте EXECUTE SQL TASK для выгрузки имен файлов, необходимых в объект SSIS (для этого вы можете использовать хранимую процедуру или запрос SQL). Создайте переменную типа объекта на вкладке переменных, измените вывод в EXECUTE SQL TASK в Full Result Set и сопоставьте результат с объектом, который вы только что создали. Теперь этот объект содержит список файлов, через которые вы должны пройти.
  2. Теперь перетащите контейнер ForEach из панели инструментов служб SSIS. Это должно быть настроено как ForEach ADO Enumerator и сопоставить объект с ним. Создайте еще одну переменную типа string, которая будет содержать имена файлов после каждой итерации контейнера ForEach. Карта это также в Variables вкладка контейнера ForEach.
  3. Теперь разместите File System Task который вы будете использовать для перемещения этих файлов в цикл ForEach. Используйте переменную имя-файла, которую вы создали, чтобы переместить только необходимые файлы.

Теперь, если вы не уверены, какой запрос SQL использовать для вашего случая на шаге 1, чтобы получить 3 имени файла -

SELECT 'A.csv'
UNION
SELECT 'E.csv'
UNION 
SELECT 'J.csv'
Другие вопросы по тегам