使用上の注意 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - JSONデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年9月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/gzn1554761068186.ditamap
dita:ditavalPath
ja-JP/gzn1554761068186.ditaval
dita:id
evi1472243742653
Product Category
Software
Teradata Vantage

GROUP BY句は、JSON_AGG関数を呼び出すSELECT文で使用できます。GROUP BY句と集約関数の既存のルールは、JSON_AGGに適用されます。これが使用されると、結果として得られるJSON文書は、結果のグループのメンバーを表わす構成要素としてのオブジェクトを含む配列として構造化されます。各グループは異なる出力行になります。

JSONオブジェクトを構成する値の1つがVantageNULLの場合、その値はJSONインスタンスでJSON nullとして返されます。

ルールと制限

入力パラメータには、Vantageで許可される任意のデータ型を使用できます。事前定義型は、次のマッピングに基づいてJSONデータ型にマップされます。
  • Vantageの数値データ型は、JSONの数値にマップされます。
  • Vantageのnull値はJSONのnullにマップされます。
  • Vantageの他のすべてのデータ型は、JSONの文字列にマップされます。

LOB属性を入力として、構造化されたUDTを使用できません。

JSON_AGGは、括弧で囲まれたカンマ区切りリストにある構造化されたUDTのすべての属性の値を書き出します。例: (att1Valatt2Val、...、attNVal)。これを64,000バイトで実行できない場合は、SQLエラーが報告されクエリーは失敗します。

JSON構文に適合するように正しくエスケープされていないエスケープ文字を入力文字データに含めることができます。エスケープされていない文字が関数で検出されると、適切なJSON構文に適合するように入力データがエンコードされます。ただし、エスケープ後も切り捨てられたデータが正しくないJSON構文の結果を返す場合は構文エラーが返されます。

すべてのUDTなど、事前定義型以外のすべての型では、変換された値を使用して、結果として得られるJSON文書を生成します。適切に機能するように、有効なJSON構文のデータを出力する変換を指定する必要があります。そうしないと、JSONインスタンスの妥当性検査に失敗して関数がエラー メッセージを返します。ただし、前述のように、関数はエスケープされていない文字を受け取るので、この場合、エラーは返されません。

JSON値のデータ型は、変換結果の事前定義データ型に基づいて上記のマッピングに従って決定されます。すべての非LOB事前定義型は、特定の列に指定したオプションのFORMAT句、または特定のデータ型のデフォルトの形式(FORMAT句が存在しない場合)に従ってフォーマットされます。

param名は、各パラメータにオプションの"AS"句を使用して指定できます。オプション部分がNULLの場合、結果として得られるJSON文書を構成するパラメータの名前は、Vantageでの式の現在の命名規則に応じて与えられます。