Как читать xml на SQL сервере? - PullRequest
0 голосов
/ 08 февраля 2020

В настоящее время я работаю с SQL Server 2012, который требует от меня чтения XML строки, которую можно прочитать и вставить данные в таблицу с помощью хранимой процедуры.

DECLARE @TurnoverList VARCHAR(Max) = "<root><data><Value>1</Value><Value>3</Value><Value>2</Value><Value>4</Value></data></root>"
DECLARE @hDocTurnover INT

EXEC Sp_Xml_prepareDocument @hDocTurnover OUTPUT
    ,@TurnoverList

SELECT *
INTO #TempTurnover
FROM OpenXml(@hDocTurnover, 'root/data', 2) WITH (Value INT)

EXEC Sp_Xml_RemoveDocument @hDocTurnover

SELECT *
FROM #TempTurnover

Но это в настоящее время только одна запись

Value 
------
1

1 Ответ

1 голос
/ 08 февраля 2020

Если вы просто после значения каждого узла Value, вам будет лучше:

--Note use of the CORRECT datatype. Use the xml datatype for XML, for a (n)varchar
DECLARE @XML xml = '<root><data><Value>1</Value><Value>3</Value><Value>2</Value><Value>4</Value></data></root>';

SELECT d.V.value('(./text())[1]','int') AS [Value]
FROM @XML.nodes('/root/data/Value') d(V);

DB <> Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...