Пакет служб SSIS для выполнения хранимой процедуры для каждого XML-документа представляет собой определенный каталог - PullRequest
0 голосов
/ 11 июля 2011

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

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

Я создал хранимую процедуру и протестировал, она функционирует, как и ожидалось.

У меня такой вопрос, как выполнить хранимую процедуру из пакета служб SSIS для каждого XML-документа в отдельном каталоге?

Заранее благодарен за любую помощь.-

Ответы [ 2 ]

3 голосов
/ 11 июля 2011

Обычно вам просто нужно пройтись по файлам и получить полные пути к файлу для передачи в сохраненный процесс. Это можно легко сделать с помощью For Each Loop и ForEach File Enumerator. На этой странице есть хорошее описание того, как это настроить:

http://www.sqlis.com/post/Looping-over-files-with-the-Foreach-Loop.aspx

В этом цикле вы просто получаете доступ к переменной, которая заполняется при каждом выполнении цикла (найден файл XML), и отправляете его в качестве параметра в задачу «Выполнение SQL» (находящуюся внутри контейнера For Eacu Loop), чтобы вызвать хранимая процедура. Вот пример передачи переменных в качестве параметров:

http://geekswithblogs.net/stun/archive/2009/03/05/mapping-stored-procedure-parameters-in-ssis-ole-db-source-editor.aspx

0 голосов
/ 11 июля 2011

Вам не нужно использовать хранимую процедуру для этого.Вы можете сделать все это в пакете служб SSIS.Вот как:

Задача «За цикл для каждого» считывает все доступные файлы в папке.Поместите полный путь к файлу в переменную с именем XMLFileName

Внутри цикла For-Each используйте задачу Data-Flow для чтения содержимого.

OLE_SRC читает с того же SQL Serverи это утверждение SELECT GetDate() as CurrentDateTime

Компонент DerivedColumn создает столбец с именем XMLFilePath с полным путем к файлу XML

Компонент ImportColumn создает чудеса.Он будет принимать XMLFilePath в качестве входного столбца, присваивать ему LineageId нового выходного столбца, который вы создадите, и он импортирует полный XML для вас.Подробнее о том, как его настроить, читайте здесь:

http://www.bimonkey.com/2009/09/the-import-column-transformation/

enter image description here

Используйте пункт назначения OleDB для записи в таблицу.

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