Загрузить XML, содержащий 300 элементов для каждой записи, в БД - PullRequest
0 голосов
/ 28 октября 2008

Итак, у меня есть этот большой XML-файл, содержащий более 300 элементов для каждой записи, и мне нужно вставить эти записи в таблицу базы данных. Имена узлов в XML-файле совпадают с именами столбцов в БД. И все они струны. Есть ли автоматический способ сопоставить их и вставить данные, или мне нужно будет написать строки кода, сопоставляющие каждый столбец с каждым элементом в файле XML? Использование SQL Server 2005.

Ответы [ 3 ]

3 голосов
/ 28 октября 2008

Я бы согласился с тем, что для SQL-сервера лучше использовать массовую загрузку или SQL / XML.

Если база данных не является сервером SQL и не поддерживает xml изначально, другой вариант - использовать базовый xslt для преобразования xml в csv или tsv; большинство баз данных могут импортировать файлы с разделителями.

Конечно, другой вопрос: почему у вас 300 столбцов?

0 голосов
/ 28 октября 2008

300 столбцов? Не так, как я читаю вопрос, но опять же мой английский не так хорош. :) Насколько я знаю, нет автоматического сопоставления между Xml и таблицей / столбцами базы данных. Но не должно быть так сложно написать динамическое обновление? Получите все имена столбцов (имена узлов) и добавьте их в строку (column1, column2 и т. Д.), А затем выполните итерации по xml для получения значений (node1.Value node2.Value и т. Д.). Или, если вы используете Sql Server 2005/2008, используйте массовую вставку .

0 голосов
/ 28 октября 2008

Какой движок базы данных вы используете?

Сервер SQL может импортировать данные с помощью массовой загрузки или мастера импорта / экспорта и т. Д.

Microsoft KB , + Многие другие методы

...