GETLENGTH 関数は、ノードリストに含まれるノード数を返します。ノードの走査前に上限を取得する場合や、ITEM と組み合わせてセキュアアクセスを実現する際によく使用されます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
説明
V4.4.2バージョンでは、このサブプログラムはOceanBaseデータベースV4.4.2 BP2バージョンから導入されました。
構文
DBMS_XMLDOM.getLength (
nodelist IN DBMS_XMLDOM.DOMNODELIST);
パラメータの説明
パラメータ |
説明 |
|---|---|
| nodelist | 統計対象の DBMS_XMLDOM.DOMNODELIST ハンドル。 |
戻り値
ノードリスト内のノード数。型は NUMBER です。
使用方法
インデックスは0から始まり、有効範囲は [0, GETLENGTH(nodelist) - 1] です。リストが空の場合は0を返します。
例
この例では、DBMS_XMLPARSER システムパッケージを使用してXMLドキュメントを解析し、DOMDOCUMENT ハンドルを取得します。次に、DBMS_XMLDOM システムパッケージを使用してXMLドキュメントの DOMNODELIST ハンドルを取得し、リスト内のノード数を取得します。
-- パーサーとドキュメントハンドルの変数宣言
DECLARE
p DBMS_XMLPARSER.PARSER;
doc DBMS_XMLDOM.DOMDOCUMENT;
nl DBMS_XMLDOM.DOMNODELIST;
len NUMBER;
BEGIN
-- パーサーインスタンスの作成
p := DBMS_XMLPARSER.NEWPARSER;
-- パーサーでXMLドキュメントを解析
DBMS_XMLPARSER.PARSECLOB(p, '<root><a/><b/></root>');
-- XMLドキュメントのDOMDOCUMENTハンドルを取得
doc := DBMS_XMLPARSER.GETDOCUMENT(p);
-- パーサーインスタンスの解放
DBMS_XMLPARSER.FREEPARSER(p);
-- XMLドキュメント内のすべての要素リストの取得
nl := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(doc, '*');
-- リスト内のノード数の取得
len := DBMS_XMLDOM.GETLENGTH(nl);
-- XMLドキュメントリソースの解放
DBMS_XMLDOM.FREEDOCUMENT(doc);
END;
/