Вопрос:

Зациклить в файле, извлечь имя файла, добавить имя в таблицу, повторить поток для каждого файла

c# visual-studio-2015 ssis

282 просмотра

1 ответ

30 Репутация автора

ОТВЕТЬ НИЖЕ

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

У меня есть все, что мне нужно: я могу перебрать все файлы с помощью цикла Foreach и взять имя файла в качестве переменной. Внутри контейнера Foreach находится задача потока данных для импорта записей из плоского файла в таблицу SQL. Выйдите из цикла, и мой следующий шаг - запустить скрипт, чтобы получить ту часть имени файла, которая мне нужна. Затем последним шагом является запрос SQL для запуска некоторых преобразований и перемещения записей в таблицу MasterStageFinal.

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

Так, например, в папке у меня есть два файла, один с 250 записями, один с 500. Мой текущий поток вставит 1500 записей в базу данных (импортирует оба файла дважды из-за перечисления) и все с номером детали только из одного файлов.

Итак, как бы я лучше решить эту проблему?

введите описание изображения здесь

Свойства цикла по каждому элементу

введите описание изображения здесь

Автор: Blake Norwood Источник Размещён: 08.11.2017 11:46

Ответы (1)


0 плюса

30 Репутация автора

Решение

Я смог найти ответ благодаря этому сайту. https://www.mssqltips.com/sqlservertip/2874/loop-through-flat-files-in-sql-server-integration-services/

Вот мой последний поток. Источник плоских файлов использует строку подключения, инициированную циклом Foreach имени / местоположения файла.

введите описание изображения здесь

Автор: Blake Norwood Размещён: 09.11.2017 04:39
Вопросы из категории :
32x32