SSIS Как извлечь имена файлов из нескольких папок, используя контейнер Foreach L oop? - PullRequest
1 голос
/ 15 апреля 2020

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

Я бы хотел использовать контейнер Foreach L oop, который (для каждой итерации);

1) принимает одно имя папки (хранится в переменной объекта) во входных данных.
2) Прочитать все имена файлов в папке.
3) Загрузить имена файлов в SQL Таблицу назначения сервера.

У кого-нибудь есть решение?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

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

Однако в SSIS вы можете сделать это только с предоставленными объектами:

enter image description here

0 голосов
/ 15 апреля 2020

Вы сказали, что у вас есть каталоги в переменной объекта.

  1. Добавьте foreach l oop (выберите объект ADO) и установите переменную в строковую переменную с именем targetDirectory
  2. Добавить поток данных
  3. Добавить источник компонента сценария
  4. Добавить вывод с именем fileName в виде строки типа
  5. Передать переменную targetDirectory в виде чтения
  6. Добавьте следующий код в CreateOuputRows

    foreach(string fName in System.IO.Directory.GetFiles(Variables.targetDirectory))
    {
       Output0Buffer.AddRow();
       Output0Buffer.fileName = fname;
    }
    
  7. Продолжить поток данных к месту назначения.

Ссылка https://docs.microsoft.com/en-us/dotnet/api/system.io.directory.getfiles?view=netframework-4.8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...