Таким образом, я пытаюсь преобразовать веб-сервис, который был приложением Oracle к T-SQL. Забавная часть, у меня только есть код веб-сервиса и никакой код базы данных вообще. Я вижу, что существует входной параметр, который содержит <ROWSET><ROW NUM=\"1\"><TRANSACTIONID>123456</TRANSACTIONID></ROW></ROWSET>
Я просматриваю документы для T-SQL, и я, может казаться, ничто не нахожу полезным на том, что я могу сделать с этим xml. Из того, что я могу понять, что это используется для вставки значений в таблицу, так как элементы не будут подобны в каждом вызове.
Любая справка ценилась бы.
Предполагая, что этот XML
является параметром вашей T-SQL
хранимой процедуры или функции, вы можете использовать OPENXML
утилиту для работы с этим типом данных. Вот полный пример (перепостил сюда для наглядности):
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<people>
<person id="1">
<firstname>John</firstname>
<surname>Doe</surname>
</person>
<person id="2">
<firstname>Mary</firstname>
<surname>Jane</surname>
</person>
</people>
'
/* Create an internal representation of the XML document */
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/people/person',1)
WITH (id varchar(20),
firstname varchar(20) 'firstname',
surname varchar(20) 'surname')
EXECUTE sp_xml_removedocument @idoc
Result:
id firstname surname
1 John Doe
2 Mary Jane