JSON_ARRAY スカラー関数
JSON_ARRAY 関数は、JSON-expression または照会を使用して配列エレメントを明示的にリストすることで、JSON 配列を生成します。
この関数のスキーマは SYSIBM ですが、修飾名で関数を指定することはできません。
- JSON 式
- JSON 配列の値を生成するために使用する式。この式の結果タイプは、どの組み込みデータ・タイプであってもかまいません。ただし、以下のデータ・タイプであってはなりません (SQLSTATE 42815)。
- GRAPHIC
- VARGRAPHIC
- DBCLOB
- BINARY
- CHAR FOR BIT DATA
- VARCHAR FOR BIT DATA
- XML
- 上記のデータ・タイプに基づくユーザー定義タイプ
生成される値が数値の場合に、その数値が Infinity、NaN、および sNaN であってはなりません (SQLSTATE 22023)。
FORMAT JSON も FORMAT BSON も指定しなかった場合、生成された値が数値でなければ、結果ストリング内の特殊文字 (例えば、バックスラッシュや二重引用符) はエスケープされます。
FORMAT JSON も FORMAT BSON も指定しなかった場合、JSON-expression がバイナリー・ストリング・タイプであれば、FORMAT BSON として解釈されます。
- FORMAT JSON
- JSON-expression は JSON データとして形式設定されています。
JSON-expression が文字ストリング・データ・タイプであれば、JSON データとして扱われます。
バイナリー・ストリング・データ・タイプの JSON-expression は、UTF-8 データとして解釈されます。
- FORMAT BSON
- JSON-expression が JSON データの BSON 表現として形式設定されていることを示します (SQLSTATE 22032)。 JSON-expression は、バイナリー・ストリング・データ・タイプでなければなりません (SQLSTATE 42815)。
全選択 - 配列の値を生成するために使用する単一の列を戻す全選択を指定します (SQLSTATE 42823)。 各行の値から JSON 配列の値が 1 つ生成されます。この列の結果タイプが以下のデータ・タイプであってはなりません (SQLSTATE 42815)。
- GRAPHIC
- VARGRAPHIC
- DBCLOB
- BINARY
- CHAR FOR BIT DATA
- VARCHAR FOR BIT DATA
- XML
- 上記のデータ・タイプに基づくユーザー定義タイプ
生成される値が数値の場合に、その数値が Infinity、NaN、および sNaN であってはなりません (SQLSTATE 22023)。
FORMAT JSON も FORMAT BSON も指定しなかった場合、生成された値が数値でなければ、結果ストリング内の特殊文字 (例えば、バックスラッシュや二重引用符) はエスケープされます。
FORMAT JSON も FORMAT BSON も指定しなかった場合、fullselect がバイナリー・ストリング・タイプであれば、FORMAT BSON として解釈されます。
- FORMAT JSON
- fullselect は JSON データとして形式設定されています。
fullselect が文字ストリング・データ・タイプであれば、JSON データとして扱われます。
バイナリー・ストリング・データ・タイプの fullselect は、UTF-8 データとして解釈されます。
- FORMAT BSON
- fullselect が JSON データの BSON 表現として形式設定されていることを示します (SQLSTATE 22032)。 fullselect は、バイナリー・ストリング・データ・タイプでなければなりません (SQLSTATE 42815)。
- ON NULL
- JSON-expression または fullselect によって生成された配列エレメントが NULL 値である場合に何を戻すかを指定します。
- ABSENT ON NULL
- NULL 配列エレメントは JSON 配列に含められません。 この節がデフォルトです。
- NULL ON NULL
- NULL 配列エレメントが JSON 配列に含められます。
- RETURNING data-type
- 結果のデータ・タイプは、CHAR、VARCHAR、CLOB、VARBINARY、または BLOB にすることができます (SQLSTATE 42815)。 デフォルトは CLOB (2 GB) です。
組み込みデータ・タイプの説明については、 CREATE TABLE ステートメント を参照してください。
- FORMAT JSON
- 戻されるデータは、JSON データとして形式設定されます。
- ENCODING UTF8
- data-type がバイナリー・ストリング・タイプの場合に使用するエンコード方式を指定します。 この節は、バイナリー・ストリング・タイプの場合にのみ使用できます。 バイナリー・ストリングのデフォルトは UTF-8 です。
注
- パラメーター・マーカーが、サポートされるデータ・タイプに明示的にキャストされない場合は、エラーが戻されます (SQLSTATE 42815)。
例
- 値として 'Washington'、'Jefferson'、および 'Hamilton' を含む JSON 配列を生成します。
VALUES JSON_ARRAY('Washington', 'Jefferson', 'Hamilton'); 1 ------------------------------------- ["Washington","Jefferson","Hamilton"]
- すべての部門番号を含む JSON 配列を生成します。
VALUES JSON_ARRAY(SELECT DEPTNO FROM DEPT); 1 ------------------------------- ["F22","G22","H22","I22","J22"]