1

そこで、Oracle アプリケーションだった Web サービスを T-SQL に変換しようとしています。おもしろいのは、Web サービス コードしかなく、データベース コードがまったくないことです。を含む入力パラメーターがあることがわかります<ROWSET><ROW NUM=\"1\"><TRANSACTIONID>123456</TRANSACTIONID></ROW></ROWSET>

T-SQL のドキュメントを調べていますが、この xml で何ができるかについて役立つ情報が見つからないようです。私が理解できることから、すべての呼び出しで要素が似ているわけではないため、テーブルに値を挿入するために使用されます。

どんな助けでも大歓迎です。

4

1 に答える 1

2

これがストアドプロシージャまたは関数XMLのパラメータであると仮定すると、ユーティリティを使用してこのタイプのデータを操作できます。完全な例を次に示します(わかりやすくするためにここに再投稿します)T-SQLOPENXML

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

結果:

id  firstname       surname
1   John            Doe
2   Mary            Jane
于 2010-07-06T17:00:16.980 に答える