EXISTSNODE
ノート:
EXISTSNODEファンクションは非推奨です。これは、下位互換性を保つためにのみサポートされています。ただし、かわりにXMLEXISTSファンクションを使用することをお薦めします。詳細は、「XMLEXISTS」を参照してください。
構文
目的
EXISTSNODEは、指定されたパスを使用するXML文書のトラバースが任意のノードとなるかどうかを決定します。このファンクションは、XML文書を含むXMLTypeインスタンスとパスを指定するVARCHAR2のXPath文字列を、引数として受け取ります。オプションのnamespace_stringは、接頭辞のデフォルト・マッピングまたはネームスペース・マッピング(Oracle DatabaseがXPath式を評価する場合に使用)を指定するVARCHAR2値に解決される必要があります。
namespace_string引数のデフォルトは、ルート要素のネームスペースになります。Xpath_stringのサブ要素を参照する場合は、namespace_stringを指定する必要があります。また、これらの引数の両方にwho接頭辞を指定する必要があります。
関連項目:
namespace_stringの指定例およびwho接頭辞の使用例は、SQL文でのXMLの使用方法を参照してください。
戻り値は、NUMBERです。
-
ドキュメントにXPathトラバースを適用した後にノードが存在しない場合は、0(ゼロ)が戻ります。
-
ノードが存在する場合は、1が戻ります。
例
次の例では、サンプル表oe.warehousesのwarehouse_spec列のXMLパスに/Warehouse/Dockノードが存在するかを判断します。
SELECT warehouse_id, warehouse_name
FROM warehouses
WHERE EXISTSNODE(warehouse_spec, '/Warehouse/Docks') = 1
ORDER BY warehouse_id;
WAREHOUSE_ID WAREHOUSE_NAME
------------ -----------------------------------
1 Southlake, Texas
2 San Francisco
4 Seattle, Washington