JSON_OBJECTAGG

JSON_on_null_clause::=

JSON_agg_returning_clause::=

目的

SQL/JSONファンクションJSON_OBJECTAGGは集計ファンクションです。これは、その入力として、プロパティのキーと値のペアを取得します。通常、プロパティ・キー、プロパティ値またはその両方はSQL式の列です。このファンクションは、キーと値のペアごとのオブジェクト・メンバーを構成し、それらのオブジェクト・メンバーを含む単一のJSONオブジェクトを戻します。

[KEY] string VALUE expr

この句を使用して、プロパティのキーと値のペアを指定します。

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

  • stringを使用して、大/小文字を区別するテキスト・リテラルとしてプロパティ・キー名を指定します。

  • exprを使用して、プロパティ値を指定します。exprでは、SQL数値リテラルまたはテキスト・リテラルと評価される任意の式を指定できます。exprが数値リテラルと評価される場合は結果のプロパティ値がJSON数値になり、そうでない場合は結果のプロパティ値が二重引用符で囲まれた大/小文字を区別するJSON文字列値になります。

FORMAT JSON

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

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_OBJECTAGGVARCHAR2(4000)型の文字列を戻します。

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

次の例では、メンバーに部門名と部門番号が含まれるJSONオブジェクトを構成します。

SELECT JSON_OBJECTAGG(KEY department_name VALUE department_id) "Department Numbers"
  FROM departments
  WHERE department_id <= 30;

Department Numbers
----------------------------------------------------
{"Administration":10,"Marketing":20,"Purchasing":30}