17.10 - 変換時の切り捨て - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1143-171K-JPN
Language
日本語 (日本)

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

推奨事項: ベスト プラクティスとして、暗黙的な変換に頼らず、可能なときには明示的な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つの空白文字が入ります。数値から文字への変換については、数値から文字への変換を参照してください。