FREEDOCUMENT プロシージャは、GETDOCUMENT などのメソッドで取得した DOMDOCUMENT および関連する DOM リソースを解放するために使用します。解放後は、ドキュメントハンドルおよびそれに由来するすべての参照を使用しないでください。これは、ポインタのポインティング先が存在しない(デッド)状態を防ぐためです。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
説明
V4.4.2バージョンでは、このサブプログラムはOceanBaseデータベースV4.4.2 BP2バージョンから導入されました。
構文
DBMS_XMLDOM.freeDocument (
doc IN DBMS_XMLDOM.DOMDOCUMENT);
パラメータの説明
パラメータ |
説明 |
|---|---|
| doc | 解放する DBMS_XMLDOM.DOMDOCUMENT ハンドル。 |
戻り値
戻り値はありません。
使用方法
ドキュメントを解放した後、アプリケーション側では、そのハンドルおよびそれに由来する DBMS_XMLDOM.DOMNODE、DBMS_XMLDOM.DOMNODELIST の参照を引き続き使用することを避け、ポインタのポインティング先が存在しない(デッド)状態へのアクセスを防いでください。
例
この例では、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;
/