JSON_ARRAYAGG

構文

(この句の構文の詳細は、このドキュメントの「SELECT」の「order_by_clause::=」を参照)

JSON_on_null_clause::=

JSON_agg_returning_clause::=

目的

SQL/JSONファンクションJSON_ARRAYAGGは集計ファンクションです。これは、その入力として、SQL式の列を取得し、各式をJSON値に変換して、これらのJSON値を含む単一のJSON配列を戻します。

expr

exprでは、JSONオブジェクト、JSON配列、数値リテラル、テキスト・リテラルまたはNULLと評価される任意のSQL式を指定できます。このファンクションは、数値リテラルをJSON数値に、テキスト・リテラルをJSON文字値に変換します。

FORMAT JSON

この句はオプションで、セマンティクスを明確にするために使用されます。

order_by_clause

この句により、文で戻されるJSON配列内のJSON値を順序付けることができます。この句のセマンティクスの詳細は、このドキュメントの「SELECT」の「order_by_clause」を参照してください。

JSON_on_null_clause

この句を使用して、exprがNULLと評価される場合のこのファンクションの動作を指定します。

  • NULL ON NULL - この句を指定した場合は、JSONのNULL値が戻されます。

  • ABSENT ON NULL - この句を指定した場合は、JSON配列からこの値が省略されます。これはデフォルトです。

JSON_agg_returning_clause

この句を使用して、このファンクションで戻される文字列のデータ型を指定します。次のデータ型を指定できます。

  • VARCHAR2[(size [BYTE,CHAR])]

    SQLでVARCHAR2データ型を指定する場合、サイズを指定する必要があります。ただし、この句はサイズを省略できます。

  • CLOB

この句を省略するか、VARCHAR2を指定してsize値を省略した場合、JSON_ARRAYAGGVARCHAR2(4000)型の文字列を戻します。

前述のデータ型の詳細は、「データ型」を参照してください。

次の文では、ID番号を含む表id_tableを作成します。

CREATE TABLE id_table (id NUMBER);
INSERT INTO id_table VALUES(624);
INSERT INTO id_table VALUES(null);
INSERT INTO id_table VALUES(925);
INSERT INTO id_table VALUES(585);

次の例では、表id_tableのID番号からJSON配列を構成します。

SELECT JSON_ARRAYAGG(id ORDER BY id RETURNING VARCHAR2(100)) ID_NUMBERS
  FROM id_table;

ID_NUMBERS
-------------
[585,624,925]