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

暗黙的な変換の結果として、エラーなしで値が切り捨てられることがあります。

推奨事項: ベスト プラクティスとして、暗黙的な変換に頼らず、可能なときには明示的なCASTを使用してください。

例: Teradata変換構文を使用した、CHARへの変換

次のテーブル定義を考えます。

CREATE TABLE Test1 (c1 INT, c2 VARCHAR(1));

以下の2つのINSERT文はエラーなしで完了します。

INSERT INTO Test1 VALUES (1, '1');
INSERT INTO Test1 VALUES (2, 2);

この問合わせは2行を返します。

SELECT * FROM Test1;
   c1      c2
-------------
    1       1
    2               <<<< Note that the value inserted in c2 is a blank

2番目のINSERT文では、数値の2がTeradata変換構文を使用して(つまりCASTを使用しないで)、暗黙的にCHARに変換されています。処理は、以下のようになります。

  1. 数値のデフォルトまたは指定されたFORMATを使用して数値を文字列に変換します。前後の埋め込み文字は、切り捨てられません。
  2. 必要であれば、埋め込み文字で右側に拡張するか右側から切り捨てて、ターゲットの長さ指定に適合させます。

非埋め込み文字が切り捨てられた場合には、文字列切り捨てエラーは報告されません。

この変換では数字を右寄せにしますが、結果の先頭バイトに1つの空白文字が入ります。数値から文字への変換については、数値から文字への変換を参照してください。