17.10 - 16進整数リテラル - 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
日本語 (日本)

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

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

ANSI準拠

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

構文

'hexadecimal digits' X [ | [ 1 | 2 | 4 | 8 ] ]
太字または色付きの垂直バーを入力する必要があります。

構文要素

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

使用上の注意

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;