JSON_ARRAYAGG
JSON_on_null_clause::=
目的
SQL/JSONファンクションJSON_ARRAYAGG
は集計ファンクションです。これは、その入力として、SQL式の列を取得し、各式をJSON値に変換して、これらのJSON値を含む単一のJSON配列を戻します。
expr
expr
では、JSONオブジェクト、JSON配列、数値リテラル、テキスト・リテラルまたはNULLと評価される任意のSQL式を指定できます。このファンクションは、数値リテラルをJSON数値に、テキスト・リテラルをJSON文字値に変換します。
FORMAT JSON
このオプション句を使用すると、入力文字列が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_returning_clause
この句を使用して、このファンクションで戻される文字列のデータ型を指定します。次のデータ型を指定できます。
-
VARCHAR2[(
size
[BYTE,CHAR])]
SQLで
VARCHAR2
データ型を指定する場合、サイズを指定する必要があります。ただし、この句はサイズを省略できます。 -
シングルバイト文字またはマルチバイト文字を含むキャラクタ・ラージ・オブジェクトを戻す
CLOB
。 -
AL32UTF8
文字セットのバイナリ・ラージ・オブジェクトを戻すBLOB
。 -
JSONデータを戻す
JSON
。JSON
型を使用するには、データベース初期化パラメータcompatibleを20
以上に設定する必要があります。
この句を省略するか、VARCHAR2
を指定してsize
値を省略した場合、JSON_ARRAYAGG
はVARCHAR2(4000)
型の文字列を戻します。
前述のデータ型の詳細は、「データ型」を参照してください。
STRICT
STRICT
句を指定して、JSON生成ファンクションの出力が正しいJSONであることを確認します。チェックに失敗すると、構文エラーが発生します。
例については、JSON_OBJECTを参照してください。
WITH UNIQUE KEYS
WITH UNIQUE KEYS
を指定すると、生成されたJSONオブジェクトが一意キーを持つことが保証されます。
例
次の文では、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]