16.20 - 16進整数リテラル - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

目的

16進整数バイト リテラル値を宣言します。

構文



hexadecimal digits
16進数字の列(16進数字は0~9、a~f、またはA~Fの文字)。
1
BYTEINTデータ型の整数。
2
SMALLINTデータ型の整数。
4
INTEGERデータ型の整数。1、2、4、8のどれも指定されていない場合、これがデフォルトです。
8
BIGINTデータ型の整数。

ANSI準拠

16進数リテラルは、ANSI SQL:2011規格に対するTeradata拡張機能です。

定義

16進数リテラルは、0~16個の16進数字の列の先頭と末尾を単一引用符で囲んだものです。スペース文字と復帰改行文字は、リテラル内には使用できません。

データ型

Xの後に指定する修飾子によって、16進数リテラルのデータ型が指定されます。

16進数リテラルの形式 データ型 16進数の最大桁数
'hexadecimal digits'X

'hexadecimal digits'XI

'hexadecimal digits'XI4

INTEGER 8
'hexadecimal digits'XI2 SMALLINT 4
'hexadecimal digits'XI1 BYTEINT 2
'hexadecimal digits'XI8 BIGINT 16

ルール

16進整数リテラルは、奇数個または偶数個の16進数字で表現されます。16進数リテラルは、右寄せです。例えば、値1000は、次のいずれを使用しても表現できます。

'3e8'X
'0003e8'X
'000003e8'X

16進数1000は'1000'xで、16*16*16=4096です。

'3e8'x=3*16*16+e*16+8で、eは14なので、1000になります。

リテラル1000はSMALLINT型ですが、前述の16進数定数はすべてINTEGER型なので注意してください。

例: 16進整数リテラル

次のテーブルについて考察します。

CREATE TABLE id_pairs (region_id INTEGER, region CHAR(20));

次の文を発行して、region列の値を検索します。このとき、region_idは16進数値の3e8です。

SELECT region FROM id_pairs WHERE region_id = '3e8'X;