EXTRACT (XML)
ノート:
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」の例を比較してみてください。