GETDOCUMENT 関数は、PARSECLOB の呼び出しが成功した後、パーサーから現在解析されているXMLに対応する DBMS_XMLDOM.DOMDOCUMENT ハンドルを取得します。このハンドルは、その後 DBMS_XMLDOM の関連サブプログラムと組み合わせて、DOMツリーのトラバースやノードの読み取り操作に使用できます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
説明
V4.4.2バージョンでは、このサブプログラムはOceanBaseデータベースV4.4.2 BP2バージョンから導入されました。
構文
DBMS_XMLPARSER.getDocument (
parser IN DBMS_XMLPARSER.PARSER);
パラメータの説明
パラメータ |
説明 |
|---|---|
| parser | PARSECLOB を完了した DBMS_XMLPARSER.PARSER ハンドル。 |
戻り値
現在の解析結果に対応する DBMS_XMLDOM.DOMDOCUMENT ハンドル。
使用方法
ドキュメントハンドルとパーサーのライフサイクルは独立しており、パーサーを解放してもドキュメントハンドルは引き続き使用できます。ただし、ドキュメントリソースは最終的に FREEDOCUMENT で個別に解放する必要があります。これは、メモリリークを防ぐためです。
例
この例では、DBMS_XMLPARSER システムパッケージを使用してパーサー上でXMLドキュメントを解析し、DOMDOCUMENT ハンドルを取得します。最後に DBMS_XMLDOM システムパッケージを使用してドキュメントリソースを解放します。
DECLARE
p DBMS_XMLPARSER.PARSER;
doc DBMS_XMLDOM.DOMDOCUMENT;
BEGIN
-- パーサーインスタンスの作成
p := DBMS_XMLPARSER.NEWPARSER;
-- パーサーでXMLドキュメントを解析
DBMS_XMLPARSER.PARSECLOB(p, '<root/>');
-- XMLドキュメントのDOMDocumentハンドルを取得
doc := DBMS_XMLPARSER.GETDOCUMENT(p);
-- パーサーハンドルを解放
DBMS_XMLPARSER.FREEPARSER(p);
-- XMLドキュメントリソースを解放
DBMS_XMLDOM.FREEDOCUMENT(doc);
END;
/