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インスタンスの値となる文字列です。
- LATIN
- UNICODE
- 結果として得られるJSONインスタンスの文字セット。
- BSON
- UBJSON
- 結果として得られるJSONインスタンスのストレージ形式。
- JSON_binary_data
- 結果として得られるJSONインスタンスの値となる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ドット表記法(エンティティ参照)の説明を参照してください。