2014-12-18 6 views
0

Good Day,SSIS Bulk Insert Task Editor XML-файл

Я пытаюсь использовать SSIS для массового вставки XML-файлов в базу данных sql. В редакторе задач Bulk Insert Task есть два варианта под заголовком «Подключение» окна под заголовком «Формат»: «Укажите» и «Использовать файл». «Specify» появляется, чтобы говорить с традиционными файлами, и я думаю, что это не относится к файлам xml (?). Другой вариант - «Использовать файл», чтобы использовать этот параметр, что мне нужно сделать в отношении исходного файла?

спасибо.

+2

Почему бы не использовать задачу DataFlow с источником XML? –

ответ

0

Я смог достигнуть своей цели массового вставки всех xml-файлов из каталога, используя следующий скрипт в задаче «Выполнение SQL-задачи». Убедитесь, что в вашей «Execute SQL Task» этот параметр ByPassPrepare установлен на «True». Также в разделе «Сопоставление параметров» имя вашего параметра ДОЛЖНО предшествовать символу «@». Вы не можете назвать свою переменную в своем sql именем, которое вы только что определили, должен использоваться знак вопроса. Если вы делаете несколько вызовов переменных в одном и том же скрипте, вы должны настроить, как вы вызываете вопросительные знаки. Внутри контейнера для каждого цикла, где выполняется задача sql выполнения, перейдите в раздел «Коллекция», укажите папку, в которой находятся файлы, которые вы хотите загрузить (папка), и определите ваши файлы (файлы) как * .xml. В разделе «Сопоставление параметров» зарегистрируйте пользовательскую переменную, содержащую путь к файлу («Запомнить» должен содержать фактический файл в определении переменной).

declare @sql nvarchar (max);

множество @sql = ' INSERT INTO testXMLwithOpenXML (XMLDATA, LoadedDateTime) конвертируйте (XML, BulkColumn) А.С. BulkColumn, GETDATE() ОТ OPENROWSET (BULK ''' +? + ''», SINGLE_BLOB) А.С. Икс;'

exec (@sql)