NEW JSONコンストラクタ - 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

Teradataは、JSONデータ型の新しいインスタンスを作成するためのJSONデータ型コンストラクタを提供します。このコンストラクタは、新しいJSONインスタンスのJSON文字列、文字セット、および格納形式を指定するオプションのパラメータを受け入れます。

NEW JSONコンストラクタを使用して、JSON型をテーブルの列に挿入すること、または、それらを受け入れるかそれらを必要とする関数またはメソッドにJSONデータ型引数として挿入することができます。

構文

NEW JSON ( [ JSON_string_spec | JSON_binary_data_spec ] )

構文要素

JSON_string_spec
'JSON_String' [, { LATIN | UNICODE | BSON | UBJSON } ]
JSON_binary_data_spec
'JSON_binary_data' [, { BSON | UBJSON } ]
'JSON_String'
結果として得られるJSONインスタンスの値となる文字列です。
文字列は、JSON文字列の構文で説明されているJSON構文に準拠する必要があります。
LATIN
UNICODE
結果として得られるJSONインスタンスの文字セット。
文字セットを指定しない場合、ユーザーのデフォルト文字セットが使用されます。
BSON
UBJSON
結果として得られるJSONインスタンスのストレージ形式。
コンストラクタの結果は、BSONまたはUBJSONの形式で格納されたデータを含むJSON型です。
JSON_binary_data
結果として得られるJSONインスタンスの値となるJSONバイナリ データです。
バイナリ データ型は、BYTE、VARBYTE、または、BLOBである必要があります。
JSON_binary_dataを指定した場合は 、BSONまたはUBJSONを指定する必要があります。

ルールと制限

次のように、JSON_StringまたはJSON_binary_dataは、結果として得られるJSON型の最大長以下にする必要があります。
  • LATINの16,776,192文字またはJSONテキスト データのUNICODEの8,388,096文字
  • 16,776,192バイトのバイナリ データ

JSON型を列に挿入する場合や関数やメソッドで引数として使用する場合は、このデータが絶対最大長未満の可能性があるので、JSONデータの実際の長さがこの特定のインスタンスに指定されている最大長以下であることがチェックされます。現在の使用量に対してデータが大きすぎる場合は、エラーが報告されます。切り捨ては行なわれません。

使用上の注意

デフォルト コンストラクタでは、引数はコンストラクタ式に渡されません。NEW JSON()は、ユーザーの文字セットに基づいた文字セットで空のJSON型の値を初期化します。データはnull文字列に設定されます。デフォルトのストレージ形式はテキストです。

空のJSONオブジェクトを引数としてコンストラクタに渡す場合(例えば、NEW JSON(''))、コンストラクタは空のJSONオブジェクトを返します。

NEW JSONコンストラクタを使用して、バイナリ形式で格納されているJSON文書を構成できます。ただし、このコンストラクタの結果をクライアントに送信する場合は、バイナリ データのテキスト表現を含むCLOBとして送信されます。

JSONドット表記法参照をコンストラクタ式の最後に追加できます。JSONドット表記法(エンティティ参照)の説明を参照してください。