Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS. Foreach Loop Container  [new]
supra
Member

Откуда:
Сообщений: 5
Добрый день!
Данные из Intebase (несколько таблиц, названия которых начинаются на "asd") надо перетянуть в MS SQL Server 2008 (одну таблицу).
Поделитесь своим опытом, подскажите, пожалуйста, каким образом можно настроить пакет
18 июн 09, 15:13    [7315963]     Ответить | Цитировать Сообщить модератору
 Re: SSIS. Foreach Loop Container  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Помещаете в контейнер Data Flow Task, котороя будет делать означенную загрузку, а в качестве источника задаете "запрос в переменной". Перед этой Data Flow Task втыкаете Script Task, собственно в которой и формируете сам запрос, передавая уже этой таске значение имени таблицы через соответствующую переменну, которая, в свою очередь, должна быть замаплена на список в контейнере Foreach Loop.
Как вы будете формировать список для контейнера - это уже другой вопрос - посмотрите на эту тему документацию.

Сообщение было отредактировано: 19 июн 09, 06:08
19 июн 09, 06:07    [7318528]     Ответить | Цитировать Сообщить модератору
 Re: SSIS. Foreach Loop Container  [new]
supra
Member

Откуда:
Сообщений: 5
tpg, спасибо!
вот только можно чуть поподробнее?
с переменной не совсем понятно. Она должна быть пользовательской или какой-то из системных.
Какой список контейнера Foreach Loop должен быть выбран.
19 июн 09, 06:44    [7318543]     Ответить | Цитировать Сообщить модератору
 Re: SSIS. Foreach Loop Container  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
supra
с переменной не совсем понятно. Она должна быть пользовательской или какой-то из системных.
Конечно пользовательской! Системные нужны в основном для получения системной же информации...

supra
Какой список контейнера Foreach Loop должен быть выбран.
Ну, это уже ваше дело - хоть формируемый руками список, хоть полученный в результате запроса, хоть...

Вот, вы как собираетесь узнавать имена нужных таблиц? Если знаете и так, то захаркодьте этот список. Если же будете получать из какой-то системной таблицы/представления, используйте перед контейнером SQL Task для получения рекордсета, который уже в контейнере и используйте в качестве списка.
19 июн 09, 07:21    [7318555]     Ответить | Цитировать Сообщить модератору
 Re: SSIS. Foreach Loop Container  [new]
supra
Member

Откуда:
Сообщений: 5
1. "Execute SQL Task" у меня выводит список таблиц.
2. Далее этот список должен посредством "Foreach Loop Container" попасть в "Data Flow Task", где уже из источника ADO NET они перекочуют в OLE DB.

Так?

Что именно прописывается в свойствах "Execute SQL Task", "Foreach Loop Container", "Data Flow Task"?
Какие переменные каких типов создаются?

У меня пользовательская переменная попадает в "Foreach Loop Container", и на этом выполнение завершается, дальше не идёт. Где мои ошибки?

Если есть время и терпение, объясните, пожалуйста?
19 июн 09, 13:59    [7320626]     Ответить | Цитировать Сообщить модератору
 Re: SSIS. Foreach Loop Container  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Создается переменная типа объект, в Execute SQL Task результат в эту переменную.
В контейнере в качестве типа списка задаете резалсет(не помню как там называется, под рукой некуда глянуть), а в качестве переменной эту переменную типа объект задаете. Потом уже мапити переменную строкового типа в контейнере, в которую контейнер будет из списка вставлять названия таблиц при каждой иттерации.
Дальше пользуете строковую переменную в скриптовой таске в качестве ридонли переменной, а в самом таске формируете текст запроса в переменную рид/райт, которая уже будет использоваться в качестве источника в дата флоу таске.
Так вроде...
19 июн 09, 14:42    [7320986]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить