[TD_SYSFNLIB.]JSON_TABLE(
ON (json_documents_retrieving_expr)
USING
ROWEXPR (row_expr_literal)
COLEXPR (column_expr_literal)
[AS] correlation_name [(column_name [,...])]
)
構文要素
- json_documents_retrieving_expr
- 少なくとも2つの列を結果として提供する必要がある問合わせ式。最初の列はJSON文書を識別するIDです。このIDは、出力行を入力行に関連付ける出力行で返されます。エラーが発生した場合は、エラーの原因となった入力行を識別するために使用されます。2番目の列は、JSON文書自身です。他の列を含めることもできますが、JSON文書列の後にする必要があります。追加の列は、入力時から変更されずに出力行で返されます。
- JSONドキュメントを含む列には、CHAR、VARCHAR、CLOB、BYTE、VARBYTE、BLOBのいずれかのデータ型を使用できます。
- これは、json_documents_retrieving_exprの例です。
SELECT id, jsonDoc FROM jsonTable;
- これは、追加の列を使用するjson_documents_retrieving_expr問合わせの例です。テーブル演算子によって追加の列が返され、そのまま出力されます。
SELECT id, orderJson, orderDate, orderSite FROM orderJsnTable;
- json_documents_retrieving_exprパラメータがNULLの場合、関数の結果は行を含まないテーブルになります。
- row_expr_literal
- json_documents_retrieving_exprによって返されるJSONドキュメントからオブジェクトの配列を返すJSONPathクエリー式。JSON_TABLEは、配列内のオブジェクトごとに1行を返します。
- row_expr_literalにはNULLを指定できません。
- column_expr_literal
- row_expr_literalによって返されるJSON配列内の個別オブジェクトを特定するJSONPathクエリー式。各オブジェクトは、返されるテーブルの列によって表わされます。
- column_expr_literalにはNULLを指定できません。
- column_expr_literalの構文には、JSONPathクエリーと特別な名前:値のペアが含まれており、JSON_TABLEによってオブジェクトを返されるテーブルの列値に変換できるようになります。
これらの名前:値のペアでは、大文字と小文字が区別されます。
- "jsonpath" : JSONPath_query_expression
row_expr_literal式から生じたJSONドキュメントからこの列の値を抽出するクエリー。
または、後述する fromRoot : true の名前-値のペアを使用する場合は、元のJSONドキュメントのルートから列値を抽出することもできます。
- "type" : data_type_of_output_table_column
出力される列に割り当てられるVantageデータ型を指定します。返されるテーブル内のシュレッドされたJSONデータのすべての列に対して指定する必要があります。
出力されるテーブルの列のデータ型は、いずれかの非LOBのVantage事前定義型になります。JSON_TABLEは、出力ではUDTとLOB型をサポートしないので、Vantage JSONデータ型自体は、任意のJSONデータ出力列に割り当てられる型にはなりません。サポートされるデータ型の一覧については、以下のサポートされる出力データ型を参照してください。
- "ordinal" : true
返されるテーブルの列が序数列になることを示すオプションの属性。序数列内の各行には、整数の連番が含まれます。連番は、それ自体で固有になるようには保証されませんが、ID列と出力行の最初の列、そして順序列の組み合わせで固有になります。
- "fromRoot" : true
JSONPathクエリーがjson_documents_retrieving_expressionによってルート オブジェクトとして返されたオブジェクトを使用して評価されることを示すオプションの属性。それ以外の場合、JSONPathクエリーは、row_expr_literalによってルート オブジェクトとして返されたオブジェクトを使用して評価されます。
これにより、row_expr_literalによって返される配列のデータに加えて、元のJSONドキュメントのデータを出力テーブルに含めることができます。
- AS
- correlation_nameの前に指定するオプションのキーワード。
- correlation_name
- json_documents_retrieving_exprによって参照されるテーブルの別名。
- ANSI SQLでは、テーブル別名を相関名と呼びます。範囲変数とも呼ばれます。
- column_name
- 1つ以上の列名のオプション リスト。