JSONオプションの使用上のルール - Teradata Database - Teradata Vantage NewSQL Engine - JSONオプション、INSERT SQL文
Teradata Vantage™ SQLデータ操作言語
- Product
- Teradata Database
- Teradata Vantage NewSQL Engine
- Release Number
- 16.20
- Published
- 2019年3月
- Language
- 日本語
- Last Update
- 2019-10-29
- dita:mapPath
- ja-JP/fbo1512081269404.ditamap
- dita:ditavalPath
- ja-JP/fbo1512081269404.ditaval
- dita:id
- B035-1146
- Product Category
- Software
- Teradata Vantage
- JSONデータはテキスト形式でのみシュレッドできます。INSERT文を使用して、バイナリ形式のJSONデータ(BSONやUBJSONなど)をシュレッドすることはできません。
- シュレッドされたデータはVARCHAR形式であり、暗黙的なキャスティングを使用してVARCHARデータがターゲット テーブル列の形式に変換されます。VARCHARデータをターゲット列の形式にキャスティングできない場合、挿入は失敗します。例えば、ターゲット列がVARBYTEの場合にNULL以外の値をVARBYTEにキャスティングすると、JSONには一致するバイナリ データのテキスト値がないため、エラーが返されます。
- INSERT文は、JSON OBJECTをルートとして1行のJSONデータを処理します。つまり、JSONデータは、'{'を最初の非空白文字として開始します。INSERT文を使用して複数行のデータを挿入することはできません。
- INSERT文は、ターゲット テーブルがLDIテーブルの場合、ロード分離オプションをサポートします。
- ターゲット テーブルはビューではなくテーブルでなければなりません。
- 列名の照合では、大文字小文字は区別されません。
- 同じ列が複数回一致した場合、格納されるデータは最後の一致です。
- ターゲット テーブル列のいずれかがNOT NULLで、JSON入力データに列のデータが含まれない場合、次のルールが適用されます。
- ターゲット列にDEFAULT値がない場合は、エラーが返されます。
- ターゲット列にDEFAULT値があり、JSONデータが文字列リテラルである場合、DEFAULT値がターゲット テーブルに挿入されます。
- ターゲット列にDEFAULT値があり、INSERT...JSONがパラメータ化SQLを使用している場合、DEFAULT値は無視され、エラーが返されます。この場合、パラメータ化SQLを使用するより、JSONリテラルを指定することをお勧めします。