|
注意: EXTRACT(XML)ファンクションは非推奨です。これは、下位互換性を保つためにのみサポートされています。ただし、かわりにXMLQUERYファンクションを使用することをお薦めします。詳細は、「XMLQUERY」を参照してください。 |
構文
extract_xml::=

用途
EXTRACT(XML)は、EXISTSNODEファンクションに似ています。このファンクションは、VARCHAR2のXPath文字列に適用され、XMLの断片を含むXMLTypeインスタンスを戻します。先頭にスラッシュを付けて絶対XPath_stringを指定したり、先頭のスラッシュを省略して相対XPath_stringを指定できます。先頭のスラッシュを省略した場合、相対パスのコンテキストは、デフォルトでルート・ノードに設定されます。処理しているXMLでネームスペース接頭辞が使用される場合、オプションのnamespace_stringが必要です。この引数は、接頭辞のデフォルト・マッピングまたはネームスペース・マッピング(Oracle DatabaseがXPath式を評価する場合に使用)を指定するVARCHAR2値に解決される必要があります。
例
次の例では、サンプル表oe.warehousesのwarehouse_spec列のXMLパスの/Warehouse/Dockノードの値を抽出します。
SELECT warehouse_name,
EXTRACT(warehouse_spec, '/Warehouse/Docks') "Number of Docks"
FROM warehouses
WHERE warehouse_spec IS NOT NULL
ORDER BY warehouse_name;
WAREHOUSE_NAME Number of Docks
------------------------- -------------------------
New Jersey
San Francisco <Docks>1</Docks>
Seattle, Washington <Docks>3</Docks>
Southlake, Texas <Docks>2</Docks>
この例と、XMLのフラグメントのスカラー値を戻す、「EXTRACTVALUE」の例を比較してみてください。