Я должен использовать Набор строк T-SQL?

Таким образом, я пытаюсь преобразовать веб-сервис, который был приложением Oracle к T-SQL. Забавная часть, у меня только есть код веб-сервиса и никакой код базы данных вообще. Я вижу, что существует входной параметр, который содержит <ROWSET><ROW NUM=\"1\"><TRANSACTIONID>123456</TRANSACTIONID></ROW></ROWSET>

Я просматриваю документы для T-SQL, и я, может казаться, ничто не нахожу полезным на том, что я могу сделать с этим xml. Из того, что я могу понять, что это используется для вставки значений в таблицу, так как элементы не будут подобны в каждом вызове.

Любая справка ценилась бы.

1
задан marc_s 6 July 2010 в 16:57
поделиться

1 ответ

Предполагая, что этот 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
2
ответ дан 2 September 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: