25.34 WRITE_CONTEXTプロシージャ

このプロシージャは、コンテキスト・ハンドルから返されるすべての行を含む配列を書き込みます。各行は別個のオブジェクトです。

問合せにオブジェクト・タイプ、コレクションまたはカーソル列が含まれている場合は、エラーが発生します。列がVARCHAR2で、大文字値がTRUEまたはFALSEの場合は、ブール値が生成されます。

構文

PROCEDURE WRITE_CONTEXT (
   p_name        IN VARCHAR2
   p_context     IN apex_exec.t_context,
   p_write_null  IN BOOLEAN  DEFAULT FALSE );

パラメータ

表25-44 WRITE_CONTEXTプロシージャのパラメータ

パラメータ 説明

p_name

属性名。

p_context

APEX_EXEC.OPEN_QUERY_CONTEXTコールからのコンテキスト・ハンドル。

p_write_null

null値を書き込む(true)か省略する(false)か。

この例では、DEPT表を選択するAPEX_EXEC問合せコンテキストをオープンし、それをAPEX_JSONに渡します。

DECLARE
    l_context apex_exec.t_context;
begin
    l_context := apex_exec.open_query_context( 
                     p_location   => apex_exec.c_location_local_db,
                     p_sql_query  => q'#select * from dept#' );

   apex_json.open_object;
   apex_json.write_context( p_name => 'departments', p_context => l_context);
   apex_json.close_object;
 end;

{ "departments":[
     { "DEPTNO":10 ,"DNAME":"ACCOUNTING" ,"LOC":"NEW YORK" }
    ,{ "DEPTNO":20 ,"DNAME":"RESEARCH" ,"LOC":"DALLAS" } 
    ,{ "DEPTNO":30 ,"DNAME":"SALES" ,"LOC":"CHICAGO" } 
    ,{ "DEPTNO":40 ,"DNAME":"OPERATIONS" ,"LOC":"BOSTON" } ] }