Как вы называете хранимую процедуру в SSIS? - PullRequest
20 голосов
/ 14 апреля 2009

Я пытаюсь создать пакет служб SSIS, который запрашивает данные из таблицы и вызывает хранимую процедуру в другой базе данных с каждой строкой.

В моем старом пакете DTS я делал это:

EXEC myStoredProcedure ?, ?, ?

... а затем я сопоставил параметры. Однако в SSIS я не могу понять, как заставить это работать.

У меня есть задача потока данных, которая сначала выполняет запрос данных. Он передает данные в пункт назначения OLE DB. Я установил режим доступа к данным «Команда SQL», но когда я пытаюсь вставить SQL выше, я получаю «Недопустимый счетчик параметров» при анализе SQL. Я не могу добраться до экрана Mappings. Есть идеи?

Ответы [ 2 ]

13 голосов
/ 14 апреля 2009

В потоке данных OLE DB Command можно использовать для выполнения оператора SQL для каждой строки в потоке данных - ( документация MSDN )

Кроме того, вы можете сохранить исходный набор результатов в переменной объекта типа данных и использовать контейнер Foreach Loop в потоке управления (пример здесь ).

8 голосов
/ 14 апреля 2009

Вам нужно будет использовать задачу «Выполнение SQL». В разделе SQLStatement вы можете добавить код для выполнения хранимой процедуры.

Чтобы передать параметры, используйте? синтаксис и укажите параметры в разделе «Сопоставление параметров».

Хороший пример можно найти здесь .

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