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
日本語 (日本)

数値タイプ値を文字列に変換するには、その文字の記述節にデータのタイプ宣言を含めなければなりません。FORMAT句それ自体は、数値タイプを文字タイプの値に変換するために使用することはできません。この句は、結果の値の表示方法を制御するためにだけ使用することができます。

文字定義にFORMAT句が含まれていない場合には、元の数値に関連付けられている書式によってデータの表示方法が決定されます。

数値から文字へのTeradata変換構文の書式では、文字表現への変換のために明示的またはデフォルトでFORMATを使用します。FORMATは、文字列が示している長さに応じて、切り捨てたり、埋め込み文字を入れたりします。このために、有効数字が失われることがあります。

数値タイプからGRAPHICサーバー文字セットを使用する文字タイプに変換しようとすると、エラーが発生します。

一般的には、数値は、文字データとしてではなく数値データとして格納する必要があります。例えば、次のコードでテーブルを作成するとします。

CREATE TABLE job AS
   (job_code CHAR(6) PRIMARY KEY
   ,description CHAR(70) );

その後、次の問合わせが行なわれたとします。

SELECT job_code, description
FROM job
WHERE job_code = 1234;

この場合、問題となるのは、'1234'、'1234'、'01234'、'001234'、'+1234'などがすべて有効な数値リテラル値の文字表記であり、システムでハッシュに使用する値を識別できないことです。したがって、システムは、比較できるように、すべてのjob_codeの値を相当する数値表現に変換するために全テーブル走査を実行しなければなりません。