Как использовать список списков для "foreach" в SSIS

как использовать foreach с "для каждого из переменной enumator", если переменная имеет тип List < > в пакетах SSIS.

Ответ 1

Вы должны объявить две переменные SSIS

  • переменная коллекции (источник для каждого перечислителя)
  • переменная для одного элемента (используется в перечислителе)

Скажем, у вас есть List<string>, и вам нужно перебирать его элементы. Вот пример, как это сделать:

  • в окне переменных SSIS создайте переменную с именем "col", введите "object"
  • создать переменную с именем "s", введите "string"
  • создайте образец script задачи, который заполнит коллекцию "col" и добавит переменную "User:: col" в список задач ReadWriteVariables. Тело script будет выглядеть следующим образом:

    List<string> col = new List<string>() {"One", "Two", "Three"};
    Dts.Variables["User::col"].Value = col;
    
  • создайте контейнер цикла Foreach и настройте его, чтобы набрать "From enumator переменной" по переменной "User:: Col".

  • в сопоставлениях переменных контейнера Foreach добавляет сопоставление для переменной "User:: s"
  • создайте образец script задачи в контейнере Foreach, демонстрируя потребление итерации (добавьте "User:: s" к задаче ReadOnlyVariables). Тело script будет выглядеть следующим образом:

    string val = (string)Dts.Variables["User::s"].Value;
    MessageBox.Show(val);
    
  • выполнить образец, нажав F5 в BIDS. Он должен отображать три диалоговых окна с текстами "Один", "Два", "Три".

Примечание. Образцы script записываются в С# для BIDS 2008.