SQL Anywhere は、リレーショナル・データからクエリ結果を XML として取得する 2 種類の方法をサポートしています。
FOR XML 句 FOR XML 句を SELECT 文で使用して、XML 文書を生成できます。
FOR XML 句の使用については、FOR XML 句を使用してクエリ結果を XML として取り出すとSELECT 文を参照してください。
SQL/XML SQL Anywhere は、リレーショナル・データから XML 文書を生成する、ドラフト段階の SQL/XML 標準に基づく関数をサポートしています。
クエリ内でこれらの関数を 1 つ以上使用する方法については、SQL/XML を使用してクエリ結果を XML として取得するを参照してください。
SQL Anywhere がサポートする FOR XML 句と SQL/XML 関数により、リレーショナル・データから XML を生成する選択肢が 2 通り提供されます。多くの場合、どちらを使用しても同じ XML が生成されます。
たとえば、このクエリは、FOR XML AUTO を使用して XML を生成しています。
SELECT ID, Name FROM Products WHERE Color='black' FOR XML AUTO; |
次のクエリは、XMLELEMENT 関数を使用して XML を生成しています。
SELECT XMLELEMENT(NAME product, XMLATTRIBUTES(ID, Name)) FROM Products WHERE Color='black'; |
どちらのクエリも次の XML を生成します (結果セットは読みやすいようにフォーマットされています)。
<product ID="302" Name="Tee Shirt"/> <product ID="400" Name="Baseball Cap"/> <product ID="501" Name="Visor"/> <product ID="700" Name="Shorts"/> |
ネストの深い文書を生成する場合は、FOR XML EXPLICIT クエリの方が SQL/XML クエリよりも効率的である可能性が高くなります。これは、EXPLICIT モード・クエリは、通常 UNION を使用してネストを生成するのに対し、SQL/XML はサブクエリを使用して必要なネストを生成するためです。
FOR XML 句を使用してクエリ結果を XML として取り出す
FOR XML RAW の使用
FOR XML AUTO の使用
FOR XML EXPLICIT の使用
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |