JSONExtractValueおよびJSONExtractLargeValue

Teradata® Database JSONデータ型

brand
Software
prodname
Teradata Database
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1150-162K-JPN

目的

JSONExtractValueメソッドとJSONExtractLargeValueメソッドは、JSONインスタンスのエンティティ値のテキスト表現を取得します。JSONExtractLargeValueはJSONExtractValueと同じ入力パラメータを受け取り、同じ操作を実行しますが、戻り値の型とサイズが異なります。

構文



構文要素

JSON_expr
JSONデータ型と評価される式。
JSONPath_expr
JSONインスタンスの特定の部分に関する情報を抽出する式。
返すことができる部分が文字列、数値、ブール値、またはnullなどのスカラー値であれば、名前/値ペア、オブジェクト、配列、配列要素、または値など、JSONインスタンスの任意の部分のデータを取得できます。
JSONPath式はJSONPath構文である必要があります。
JSONPath_exprはNULLにすることはできません。式がNULLの場合、エラーが報告されます。

機能の説明

これらのメソッドは、JSON_exprによって指定されるJSONオブジェクトを検索し、JSONPath_exprによって指定されるエンティティ名の値を取得します。エンティティ名は、JSONPath書式設定文字列によって表わされます。

JSONPath_exprには、ゼロのJSON項目または単一のJSON項目(スカラー値またはJSON null)を選択する必要があります。 複数の値がJSONPath_exprと一致する場合は、複数の結果が見つかったことを示す警告とエラー メッセージ文字列が返されます。

戻り値

  • JSONインスタンスにエンティティが見つかった場合は、エンティティの文字列値。
  • JSONPath_exprで指定した問合わせ式に複数の値が一致する場合は、警告と"*** ERROR MULTI RESULT ***"というエラー メッセージ文字列。
  • 結果が空の文字列の場合は、空の文字列。
  • 結果がJSONのnullの場合は、Teradata NULL。
  • JSONオブジェクトにエンティティが見つからなかった場合は、Teradata NULL。
  • JSON_expr引数がnullの場合は、Teradata NULL。

JSONExtractValueは、必要な属性のVARCHARを返します。戻り値の長さのデフォルトは4Kですが、DBS制御フィールドJSON_AttributeSizeを使用して32,000文字(バイトではない)まで増やすことができます。このメソッドの結果がバッファに対して大きすぎる場合は、エラーが報告されます。

JSONExtractLargeValueは、型の最大サイズまでスカラー値を抽出します。CHARACTER SET LATINに対しては16,776,192文字、CHARACTER SET UNICODEに対しては8,388,096文字のCLOBを返します。

両方のメソッドの戻り値は、メソッドを呼び出したJSON型の文字セットに応じてUNICODEまたはLATINになります。パラメータの文字セットがJSON型の文字セットに一致しない場合、Teradataはパラメータの文字セットの正しい文字セットに変換しようとします。

返される文字列は、キャストをサポートする任意のデータ型にキャストできます。

使用

抽出の結果が大きい(32,000文字を超える)場合にのみJSONExtractLargeValueを使用する必要があります。それ以外の場合は、JSONExtractValueを使用します。