日本語PDF

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.warehouseswarehouse_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」の例を比較してみてください。