プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

XMLSEQUENCE


注意:

XMLSEQUENCEファンクションは、非推奨です。これは、下位互換性を保つためにのみサポートされています。ただし、かわりにXMLTABLEファンクションを使用することをお薦めします。詳細は、「XMLTABLE」を参照してください。

構文

xmlsequence.gifの説明が続きます。
図「xmlsequence.gif」の説明

用途

XMLSEQUENCEには2つの書式があります。

XMLSEQUENCEXMLTypeのコレクションを戻すため、このファンクションをTABLE句で使用して、コレクション値をネスト解除することで複数行にし、SQL問合せでの処理をさらに進めることができます。


関連項目:

このファンクションの詳細は、『Oracle XML DB開発者ガイド』を参照してください。また「XMLTABLE」も参照してください。

次の例では、XMLSEQUENCEが複数の要素を持つXML文書をVARRAY型の単一要素ドキュメントに分割する方法を示しています。この例では、TABLEキーワードが、コレクションを副問合せのFROM句で使用できる表の値とみなすように、Oracle Databaseに指示しています。

SELECT EXTRACT(warehouse_spec, '/Warehouse') as "Warehouse"
   FROM warehouses WHERE warehouse_name = 'San Francisco';

Warehouse
------------------------------------------------------------
<Warehouse>
  <Building>Rented</Building>
  <Area>50000</Area>
  <Docks>1</Docks>
  <DockType>Side load</DockType>
  <WaterAccess>Y</WaterAccess>
  <RailAccess>N</RailAccess>
  <Parking>Lot</Parking>
  <VClearance>12 ft</VClearance>
</Warehouse>

1 row selected.

SELECT VALUE(p)
   FROM warehouses w, 
   TABLE(XMLSEQUENCE(EXTRACT(warehouse_spec, '/Warehouse/*'))) p
   WHERE w.warehouse_name = 'San Francisco';

VALUE(P)
----------------------------------------------------------------
<Building>Rented</Building>
<Area>50000</Area>
<Docks>1</Docks>
<DockType>Side load</DockType>
<WaterAccess>Y</WaterAccess>
<RailAccess>N</RailAccess>
<Parking>Lot</Parking>
<VClearance>12 ft</VClearance>

8 rows selected.