16.20 - 暗黙タイプ変換 - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN
Teradata Databaseは、以下の操作に対してUDTからNUMERICへの暗黙的変換を実行します。
  • UPDATE
  • INSERT
  • ストアド プロシージャ、外部ストアド プロシージャ、UDF、およびUDMへの引数の引き渡し。
  • このドキュメント中の他の箇所に明記されている特定のシステム演算子と関数(DBS制御レコードのDisableUDTImplCastForSysFuncOpフィールドがTRUEに設定されていない場合に限る)。

暗黙のデータ型変換を実行するには、AS ASSIGNMENT句を指定する適切なCAST定義(使用上の注意を参照)が存在していなければなりません。

キャスト定義のターゲット数値型は、暗黙の変換のターゲット数値型と正確に一致している必要はありません。Teradata Databaseは、BYTEINT、SMALLINT、INTEGER、BIGINT、DECIMAL/NUMERIC、NUMBER、またはREAL/FLOAT/DOUBLEターゲット型を指定する暗黙的なキャスト定義を使用することができます。

UDTから別々の数値型への変換の場合に複数の暗黙的なキャスト定義が存在する場合、Teradata Databaseは優先順位の最も高い数値型の暗黙的なキャスト定義を使用します。以下のリストでは、数値型の優先順位が最低から最高の順に並べられています。
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL/NUMERIC
  • NUMBER
  • REAL/FLOAT/DOUBLE

UDTから数値への暗黙的なキャスト定義が存在しない場合、Teradata DatabaseはUDTから数値への暗黙的なキャスト定義に代用できるその他のキャスト定義を検索します。

存在する暗黙CAST定義の組み合わせ Teradata Databaseの動作
UDT-to-DATE UDTから文字  
X   UDTからDATEへの暗黙CAST定義を使用する。
  X UDTから文字への暗黙CAST定義を使用する。

CLOBは文字タイプにはなりません。

UDTから文字への暗黙のCAST定義が複数存在する場合、Teradata DatabaseはSQLエラーを返します。

X X エラーを報告する。

Teradata Databaseは暗黙的なキャスト定義を使用してUDTを代用データ型にキャストしてから、その代用データ型を数値型に暗黙的にキャストできるため、代用は有効です。