プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 15.42 WRITEプロシージャのシグネチャ13

このプロシージャは、カーソルが戻す行がすべて格納された配列が値である属性を書き込みます。各行は別個のオブジェクトです。

問合せにオブジェクト・タイプ、コレクションまたはカーソルの列が含まれる場合、プロシージャでは`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}] }