このプロシージャは、カーソルが戻す行がすべて格納された配列が値である属性を書き込みます。各行は別個のオブジェクトです。
問合せにオブジェクト・タイプ、コレクションまたはカーソルの列が含まれる場合、プロシージャではwrite(p_name,<xmltype>)
を使用します。 WRITEプロシージャのシグネチャ14を参照してください。 それ以外の場合は、DBMS_SQL
を使用して行をフェッチし、該当する列データ型のwrite()
プロシージャを出力に使用します。 列の型がvarchar2
で、大文字の値が'TRUE'
または'FALSE'
である場合、ブール値を生成します。
構文
APEX_JSON.WRITE ( p_name IN VARCHAR2, p_cursor IN OUT NOCOPY sys_refcursor );
パラメータ
表15-49 WRITEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
p_name |
属性名。 |
p_cursor |
カーソル。 |
例
この例では、部門10および20のJSONオブジェクトが格納されている配列を、オブジェクト・メンバー属性として書き込みます。
DECLARE c sys_refcursor; BEGIN open c for select deptno, dname, cursor(select empno, ename from emp e where e.deptno=d.deptno) emps from dept d; apex_json.open_object; apex_json. write('departments', c); apex_json.close_object; END; { "departments":[ {"DEPTNO":10, "DNAME":"ACCOUNTING", "EMPS":[{"EMPNO":7839,"ENAME":"KING"}]}, ... ,{"DEPTNO":40,"DNAME":"OPERATIONS","EMPS":null}] }