Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースにおける XML » データベースにおける XML の使用

 

クエリ結果を XML として取得する

SQL Anywhere は、リレーショナル・データからクエリ結果を XML として取得する 2 種類の方法をサポートしています。

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 の使用