sql >> データベース >  >> RDS >> Sqlserver

xml を sql に送信する

    15 秒の SQL XML に関する 3 部構成のシリーズ (http://www.15seconds) をご覧ください。 com/Issue/050803.htm .

    個人的には、SQL XQuery 関数を使用して XML を断片に細断し、それらを SQL Server に格納します。

    次のような場合:

    <data>
      <person>
         <name>Jones</name>         
         <firstname>Peter</firstname>
      </person>
      <person>
         <name>Smith</name>         
         <firstname>Frank</firstname>
      </person>
    <data>
    

    次のように書くことができます:

    SELECT
       Data.Person.value('(name)[1]', 'varchar(20)') as 'Name',
       Data.Person.value('(firstname)[1]', 'varchar(20)') as 'First Name'
    FROM 
       @XmlVar.nodes('/data/person') As Data(Person)
    

    つまり、基本的に .nodes 関数は、XML を「疑似テーブル」 Data.Person に分割します - 各 <person> エントリはテーブルの 1 行になります。

    .value() を使用 関数を使用すると、細断された XML ノードから単一の値を抽出できます。これで、多数の varchar(20) フィールドができました。

    この方法は、XML がかなり小さい場合 (数百のエントリ) に適しています。巨大な XML ファイルがある場合は、 などの他の方法を調査することをお勧めします。 XML バルクロード .



    1. プリペアドステートメントの構文エラーが発生するのはなぜですか?

    2. SQLで月と日の両方の2つの日付の差を取得します

    3. リレーショナルデータベース

    4. Oracleの別のテーブルからテーブルを更新します