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