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リテラルを指定することをお勧めします。