SQL ServerでXQueryするには?(準備編1)
»
気になるXQuery
最近、「XQuery」が気になっています。
今現在、「XPath」を使用していて、特に不自由はしていません。しかし理由もなく、「XQuery」がこの世の中に生まれてくるわけがありません。
XML DBっていっても色々ありますね
XML Databaseについては、このサイトが便利です。アイティメディアも企画協力しています。
さて、勉強用のXQuery実行環境をどうするのか? 1週間くらい悩みました。XQueryするならやはりXMLネイティヴのデータベースがいいのか? それともハイブリッドのデータベースがいいのか?
結局、普段使用しているハイブリッドのSQL Serverで実行することにしました。
結果をXMLで取得する
XQueryを実行するためには、当然XMLが必要です。SQL Serverでは、XMLを得る方法が2つ用意されています。
1つ目は、XML型のフィールドを定義すること。
2つ目は、魔法のことば「FOR XML PATH」を使うこと。今回はこちらを採用します。
サンプルテーブル
こんな感じの、TAX(消費税マスタ)テーブルを作っておきました。
TAXCODE | TAXNAME | TAXRATE | MODIFIED |
0 | 非課税 | 0 | 2000/01/01 0:00:00 |
1 | 課税 | 5 | 2001/01/01 0:00:00 |
8 | 旧消費税 | 3 | 2008/01/01 0:00:00 |
9 | その他 | NULL | 2009/01/01 0:00:00 |
XMLにしてしまえ
で、実際にやってみました。
1 |
SELECT |
実行。F5!
1 |
<row> |
なんと! 第1階層に「row」が4つで取得されました。
XMLでは、第1階層は「ルート」と呼ばれ、複数のルートがあってはならないのです。つまりこのXMLは、不正なXMLです。
ルートを追加する
ルートを追加してみよう。やり方は「PATH」の後ろに、カンマで区切って「ROOT」と記述します。
1 |
SELECT |
いざ実行だ。F5!
1 |
<root> |
できた(><)
しかし少々気になる点が……。その問題点と解決方法は、次回に続きます。
コメント
コメントを投稿する
SpecialPR