Количество строк различных файлов в контейнере для каждого цикла - PullRequest
3 голосов
/ 08 марта 2019

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

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Использование задачи выражения

Задача выражений создает и оценивает выражения, которые устанавливают значения переменных во время выполнения, используя построитель выражений

Добавьте 2 переменные в ваш пакет ssis:

  • @[User::TotalRowCount]: для сохранения общего количества
  • @[User::RowCount]: для использования в преобразовании количества строк

Добавьте задачу Выражение внутри контейнера цикла по каждому элементу со следующим выражением:

@[User::TotalRowCount] = @[User::TotalRowCount] + @[User::RowCount]

Ссылки

1 голос
/ 08 марта 2019

Вы можете использовать задачу скрипта, чтобы сделать это. Начните с создания другой переменной SSIS, которая будет хранить общее количество для всех итераций цикла по каждому элементу. После этого поместите задачу скрипта после задачи потока данных внутри цикла. Добавьте переменную, содержащую количество строк для каждой итерации, в виде ReadOnlyVariable и переменную, которая будет хранить общее количество для всех итераций в поле ReadWriteVariables. В следующем примере C # используется для обновления значения переменной общего числа строк (TotalCount) путем добавления к ней количества строк из переменной, содержащей ее для текущей итерации (CurrentInterationCount).

int currentRows = Convert.ToInt32(Dts.Variables["User::CurrentInterationCount"].Value.ToString());
int totalRows = Convert.ToInt32(Dts.Variables["User::TotalCount"].Value.ToString());

Dts.Variables["User::TotalCount"].Value = currentRows + totalRows;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...