26.22 INITIALIZE_CLOB_OUTPUTプロシージャ

このプロシージャは、一時CLOBを書き込む出力インタフェースを初期化します。デフォルトでは、SYS.HTPに書き込みます。CLOB出力を使用している場合は、最後にFREE_OUTPUT()をコールしてCLOBを解放する必要があります。

構文

APEX_JSON.INITIALIZE_CLOB_OUTPUT (
    p_dur         IN PLS_INTEGER DEFAULT sys.dbms_lob.call,
    p_cache       IN BOOLEAN     DEFAULT TRUE,
    p_indent      IN PLS_INTEGER DEFAULT NULL,
    p_preserve    IN BOOLEAN     DEFAULT FALSE );

パラメータ

表26-29 INITIALIZE_CLOB_OUTPUTプロシージャのパラメータ

パラメータ 説明

p_dur

一時CLOBの継続時間。指定可能な値はDBMS_LOB.SESSIONまたはDBMS_LOB.CALL(デフォルト)です。

p_cache

LOBをバッファ・キャッシュに読み込むかどうかを指定します。

p_indent

インデント・レベル。デフォルトは、デバッグが有効な場合は2、それ以外の場合は0です。

p_preserve

現在アクティブな出力オブジェクトを保持するかどうか。FREE_OUTPUTのコール後、後続の書込みコールは保持された出力に対して実行されます。デフォルトは"false"です。HTP出力がすでに初期化されており、CLOBを作成する必要がある場合は、p_preserve => trueを使用します。FREE_OUTPUTの後、後続の出力は元のHTP出力に再度送られますp_preserveがtrueに設定されている場合、JSON処理の後に、FREE_OUTPUTをコールする必要があります

この例では、CLOB出力用にAPEX_JSONを構成してJSONを生成し、DBMS_OUTPUTを使用してCLOBを出力し、最後にCLOBを解放します。

BEGIN
  apex_json.initialize_clob_output( p_preserve => true );

  apex_json.open_object;
  apex_json.write('hello', 'world');
  apex_json.close_object;

  dbms_output.put_line(apex_json.get_clob_output);

  apex_json.free_output;
END;
/