Преобразование Xml в таблицу SQL Server

Интересно, как я могу прочитать xml-данные и преобразовать их в таблицу в TSQL?

Например:

 8 3 8 8 25 4568457   3 3 1 2 72 4568457  

к

 8 3 8 8 25 4568457 3 3 1 2 72 4568457 

Это ответ, надеюсь, это кому-то поможет 🙂

Во-первых, это два варианта написания xml:

1

  8 3 8 8 25 4568457   3 3 1 2 72 4568457  

Ответ:

 SELECT Tbl.Col.value('IdInvernadero[1]', 'smallint'), Tbl.Col.value('IdProducto[1]', 'smallint'), Tbl.Col.value('IdCaracteristica1[1]', 'smallint'), Tbl.Col.value('IdCaracteristica2[1]', 'smallint'), Tbl.Col.value('Cantidad[1]', 'int'), Tbl.Col.value('Folio[1]', 'varchar(7)') FROM @xml.nodes('//row') Tbl(Col) 

2.

   

Ответ:

 SELECT Tbl.Col.value('@IdInvernadero', 'smallint'), Tbl.Col.value('@IdProducto', 'smallint'), Tbl.Col.value('@IdCaracteristica1', 'smallint'), Tbl.Col.value('@IdCaracteristica2', 'smallint'), Tbl.Col.value('@Cantidad', 'int'), Tbl.Col.value('@Folio', 'varchar(7)') FROM @xml.nodes('//row') Tbl(Col) 

Взято из:

  1. http://kennyshu.blogspot.com/2007/12/convert-xml-file-to-table-in-sql-2005.html

  2. http://msdn.microsoft.com/en-us/library/ms345117(SQL.90).aspx

Используйте sp_xml_preparedocument .

Для проверки деталей: http://technet.microsoft.com/en-gb/library/ms186918.aspx

Что касается вашего вопроса:

 DECLARE @XML XML SET @XML = ' 8 3 8 8 25 4568457   3 3 1 2 72 4568457 ' DECLARE @handle INT DECLARE @PrepareXmlStatus INT EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML SELECT * FROM OPENXML(@handle, '/rows/row', 2) WITH ( IdInvernadero INT, IdProducto INT, IdCaracteristica1 INT, IdCaracteristica2 INT, Cantidad INT, Folio INT ) EXEC sp_xml_removedocument @handle 

Если у вас есть глубоко вложенные XML-документы (или json, html, sql) с рекурсивными узлами (папка узла «в папке узла» в узловой папке) смешанного сложного типа без схемы XSD / DTD, вы можете использовать инструмент eXtractorONE (eXtractor.ONE). Не требуется никакого программирования, нет Xquery, нет XSLT, почти нулевой конфигурации. Без ограничений по размеру. Просто укажите папку с документами XML, выберите свою целевую базу данных и запустите ее.

Чтобы выполнить такую ​​задачу преобразования, вы можете использовать некоторый инструмент преобразования XML-преобразования, например XMLFox Advance . Мы используем конвертер XMLFox Advance в течение многих лет для преобразования данных XML-пользователей в таблицы SQL-сервера.

  • Как преобразовать XML в java.util.Map и наоборот
  • Почему C # XmlDocument.LoadXml (строка) терпит неудачу при включении заголовка XML?
  • Каков правильный способ представления нулевых элементов XML?
  • Как выравнивать представления в нижней части экрана?
  • Создание допустимого XML с кодировкой Java и UTF-8
  • Использовать JAXB для создания объекта из XML-строки
  • Проверить хорошо сформированный XML без try / catch?
  • Анализ XML с помощью XPath в Java
  • Как читать и анализировать XML-файл на C #?
  • Специальный символ в запросе XPATH
  • Как сохранить проанализированный и измененный документ DOM в XML-файле?
  • Давайте будем гением компьютера.