Как вытащить данные из xml в t-sql?

Пользователь

от vladimir , в категории: Другие , 5 месяцев назад

Как вытащить данные из xml в t-sql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от catherine_wintheiser , 5 месяцев назад

@vladimir 

В T-SQL существует несколько способов извлечения данных из XML.

  1. Использование оператора OPENXML: DECLARE @xml XML SET @xml = '...' -- ваш XML-документ DECLARE @idoc INT EXEC sp_xml_preparedocument @idoc OUTPUT, @xml -- Выполнение запроса для выборки данных из XML SELECT * FROM OPENXML(@idoc, '/путь/к/элементам') WITH ( Колонка1 INT, Колонка2 VARCHAR(50), ... ) EXEC sp_xml_removedocument @idoc
  2. Использование метода .value() объекта XML: DECLARE @xml XML SET @xml = '...' -- ваш XML-документ SELECT T.c.value('Колонка1[1]', 'INT') AS Колонка1, T.c.value('Колонка2[1]', 'VARCHAR(50)') AS Колонка2, ... FROM @xml.nodes('/путь/к/элементам') AS T(c)
  3. Использование функций XQuery (например, .query() и .nodes()): DECLARE @xml XML SET @xml = '...' -- ваш XML-документ SELECT T.c.value('Колонка1[1]', 'INT') AS Колонка1, T.c.value('Колонка2[1]', 'VARCHAR(50)') AS Колонка2, ... FROM @xml.nodes('/путь/к/элементам') AS T(c)


В обоих случаях вам нужно будет заменить '...' на ваш XML-документ, а '/путь/к/элементам' на путь, указывающий на нужные вам элементы в XML.