17.10 - JSONオプションの使用上のルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)
  • 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リテラルを指定することをお勧めします。