{ JSON_COMPOSE ( param_spec [,...] ) |
( JSON_COMPOSE ( param_spec [,...] ) RETURNS returns_clause )
}
構文要素
- param_spec
param [ (FORMAT 'format_string') ] [ AS name ]
- returns_clause
{ data_type [ (integer) ] [ CHARACTER SET { UNICODE | LATIN } ] |
STYLE column_expr
}
- param
- 何らかの値に評価される列参照、定数、または式にすることができる入力パラメータ。可変個のパラメータが許可され、各入力パラメータは、返されるJSON文書で名前と値のペアになります。
LOB属性を入力として、構造化されたUDTを使用できません。
- FORMAT 'format_string'
- format_stringは、Vantageで許可される任意の書式設定文字列です。
- format_stringの使用例については、例: SUBQUERYとGROUP BYによるJSON_COMPOSEの使用を参照してください。
- AS name
- nameは、Vantageで許可される任意の名前です。
- 作成される文字列はJSON標準エスケープ スキームに準拠します。UNICODE文字のサブセットは、'\'文字によってエスケープする必要があります。これは、Vantageの文字列には当てはまりません。したがって、Vantage文字列をJSON文字列に移植する場合は、必要に応じて適切なJSONエスケープ文字が使用されます。これは、JSONインスタンスの値およびJSON_AGG関数にも適用されます。文字セットがLATINの場合、'\'エスケープ文字はその文字セットに含まれる必要があります。そうしなければ、構文エラーが報告されます。
- RETURNS data_type
- data_typeが関数の戻り型になるように指定します。
- この関数のdata_typeはJSONにする必要があります。
- integer
- JSON型の文字の最大長を指定する正の整数値。指定する場合、長さは最小2文字で関数の絶対最大長を超えることはできません。短い方の長さが指定されます。
JSON_AGGは、集約関数として最大64000バイトをサポートします(32000のUNICODE文字または64000のLATIN文字)。RETURNS句は、さらに大きな戻り値を指定できますが、JSON_AGGが返す実際のデータは64000バイトです。データ長がこれより大きい場合はエラーが返されます。JSON_COMPOSEは、JSON_AGGより大きな値を指定できます。
- RETURNS句を指定しない場合、戻り値の型はデフォルトのJSON(32000) CHARACTER SET UNICODEになります。言い換えれば、デフォルトの戻り値の型はUNICODE文字セットのJSONデータ型で、戻り値の長さは32000文字です。
- CHARACTER SET UNICODE | LATIN
- RETURNS data_type句のデータ型の文字セット。
- 文字セットは、LATINまたはUNICODEにできます。
- RETURNS STYLE column_expr
- 関数の戻り型が指定列のデータ型と同じになるように指定します。列のデータ型はJSONである必要があります。
- column_exprは、有効なテーブルまたはビューの列参照にすることができます。