Загрузите XML, содержащий 300 элементов для каждой записи, в БД

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


person Malik Daud Ahmad Khokhar    schedule 28.10.2008    source источник


Ответы (3)


Я согласен с тем, что с SQL-сервером использование массовой загрузки или SQL/XML является хорошим вариантом.

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

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

person Marc Gravell    schedule 28.10.2008

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

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

база знаний Microsoft + Многие другие методы

person Ady    schedule 28.10.2008

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

person noocyte    schedule 28.10.2008