JSON_ARRAY スカラー関数

JSON_ARRAY 関数は、JSON-expression または照会を使用して配列エレメントを明示的にリストすることで、JSON 配列を生成します。

Read syntax diagramSkip visual syntax diagramJSON_ARRAY(,JSON-expressionFORMATJSONBSONfullselectFORMATJSONBSONABSENT ON NULLNULL ON NULLRETURNING CLOB(2G) FORMAT JSONRETURNINGdata-typeFORMAT JSONENCODING UTF8)
data-type
Read syntax diagramSkip visual syntax diagramCHARACTERCHAR(1)( integer)CHARACTERCHARVARYINGVARCHAR( integer)CHARACTERCHARLARGE OBJECTCLOB(1M)( integerKMG)BINARY VARYINGVARBINARY(integer)BINARY LARGE OBJECTBLOB(1M)( integerKMG)

この関数のスキーマは 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)。

  1. 値として 'Washington'、'Jefferson'、および 'Hamilton' を含む JSON 配列を生成します。
    VALUES JSON_ARRAY('Washington', 'Jefferson', 'Hamilton');
    
    1
    -------------------------------------
    ["Washington","Jefferson","Hamilton"]
  2. すべての部門番号を含む JSON 配列を生成します。
    VALUES JSON_ARRAY(SELECT DEPTNO FROM DEPT);
    
    1
    -------------------------------
    ["F22","G22","H22","I22","J22"]