定数 (リテラル と呼ばれるときもあります) は、値を指定するものです。 定数は、ストリング定数と数値定数に分類されます。 数値定数はさらに、整数、浮動小数点数、または 10 進数に分類されます。
定数は、すべて NOT NULL の属性を持ちます。
数値定数では、負のゼロ値 (-0) は符号のないゼロ (0) と同じ値です。
SELECT * FROM CAMP_DB2_ROSTER
WHERE AGE > CAST(14 AS YOUTH)
SELECT * FROM CAMP_DB2_ROSTER
WHERE CAST(AGE AS INTEGER) > 14
SELECT * FROM CAMP_DB2_ROSTER
WHERE AGE > 14
整数定数 は、小数点を除き最大 19 桁の符号付きまたは符号なしの整数を指定します。 整数定数の値が長精度整数の範囲内である場合、 その整数定数のデータ・タイプは長精度整数 (large integer) です。 整数定数の値が長精度整数の範囲外であるが、64 ビット整数の範囲内にある場合、 その整数定数のデータ・タイプは 64 ビット整数 (big integer) です。 64 ビット整数値の範囲外で定義された定数は、10 進定数と見なされます。
長精度整数定数の最小のリテラル表現は -2 147 483 647 であり、 整数値の限界である -2 147 483 648 ではありません。 同様に、64 ビット整数定数の最小のリテラル表現は、-9 223 372 036 854 775 807 であり、 -9 223 372 036 854 775 808 (64 ビット整数値の限界) ではありません。
64 -15 +100 32767 720176 12345678901
構文図で 'integer' (整数) という用語は、 符号を使用してはならない長精度整数定数を指すために使用されます。
浮動小数点定数 は、E で区切られた 2 つの数値で浮動小数点数を指定します。 最初の数値には符号と小数点を指定することができます。 2 番目の数値には符号を指定できますが、小数点を使用することはできません。 浮動小数点定数のデータ・タイプは倍精度です。 定数の値は、最初の数値と、2 番目の数値で指定される 10 の累乗との積であり、 浮動小数点数の範囲内になければなりません。 定数のバイト数は 30 以下でなければなりません。
15E1 2.E5 2.2E-1 +5.E+2
10 進定数 は、31 桁以内の数字で構成される符号付きまたは符号なしの数値です。 小数点を備えているか、またはバイナリー整数の範囲に収まらないかのどちらかです。 これは 10 進数の範囲内になければなりません。 精度は桁数の合計数 (前後のゼロを含む)、 位取りは小数点の右側の桁数 (後続ゼロを含む) です。
25.5 1000. -15. +37589.3333333333
10 進浮動小数点特殊値 (これは DECFLOAT(34) と解釈される) 以外の 10 進浮動小数点定数はありません。
SNAN -INFINITY
CAST ('snan' AS DECFLOAT)
CAST ('INF' AS DECFLOAT)
CAST ('Nan' AS DECFLOAT)
すべての非特殊値は、 上記の規則に従って、整数、浮動小数点数、または 10 進定数として解釈されます。 数値の 10 進浮動小数点値を取得するには、文字ストリング定数を伴う DECFLOAT cast 関数を使用します。 浮動小数点定数を DECFLOAT 関数の引数として使用することは推奨されません。浮動小数点数は正確ではなく、結果の 10 進浮動小数点値は、引数を形成する 10 進数字文字とは異なる可能性があるからです。 代わりに、DECFLOAT 関数の引数として文字定数を使用してください。
例えば、DECFLOAT('6.0221415E23', 34) は 10 進浮動小数点値 6.0221415E+23 を戻しますが、DECFLOAT(6.0221415E23, 34) は 10 進浮動小数点値 6.0221415000000003E+23 を戻します。
文字は、活版印刷文字 (絵文字) でも Unicode コード・ポイントでも表記できます。Unicode 文字のコード・ポイントは、X'000000' から X'10FFFF' までの範囲になります。Unicode 文字をコード・ポイントで表す場合は、Unicode エスケープ文字の後に 4 桁の 16 進数字を記述するか、Unicode エスケープ文字の後に正符号 (+) を入れて、その後に 6 桁の 16 進数字を記述します。デフォルトの Unicode エスケープ文字は、円記号 (¥) ですが、UESCAPE 節で別の文字を指定することもできます。UESCAPE 節では、UESCAPE キーワードの後に、1 つの文字をストリング区切り文字で囲む形で記述します。Unicode エスケープ文字として、正符号 (+)、二重引用符 (")、単一引用符 (')、ブランクは使用できません。また、0 から 9、A から F の文字も、大文字であれ小文字であれ使用できません (SQLSTATE 42604)。例えば、ローマ字 A (大文字) を Unicode コード・ポイントで指定する場合は、¥0041 と ¥+000041 という 2 とおりの方法があります。
定数値は、データベースにバインドされるときに、 必ずデータベース・コード・ページに変換されます。 それは、データベース・コード・ページのものと見なされます。 したがって、定数を FOR BIT DATA 列と結合してその結果が FOR BIT DATA となる式で使用される場合、 定数値は使用時にそのデータベース・コード・ページ表記から変換されません。
'12/14/1985' '32' 'DON''T CHANGE' ''
X'FFFF' X'46 72 61 6E 6B'
U&'¥0141ód¥017A is a city in Poland' U&'c:¥¥temp' U&'@+01D11E' UESCAPE '@'
この例の第 2 行の右端のストリングは、VARCHAR パターンの ASCII ストリング 'Frank' に対応しています。最後の行は、'Łódź is a city in Poland'、'c:¥temp'、音楽のト音記号を表す 1 文字にそれぞれ対応しています。GRAPHIC ストリング定数 は、1 バイトのアポストロフィ (') で始まり、1 バイトのアポストロフィ (') で終わる 2 バイト文字の並びで構成される可変長の GRAPHIC ストリングを指定します。そしてその先頭には、1 バイトの G または N が付けられます。アポストロフィとアポストロフィの間の文字は必ず偶数バイトで、GRAPHIC ストリングの長さは 16 336 バイトを超えることはできません。
G'double-byte character string'
N'double-byte character string'
MBCS 文字の一部としては、アポストロフィ (') を使用しないでください。 区切り文字と見なされてしまいます。
Unicode データベースでは、可変長 GRAPHIC ストリングを指定する 16 進 GRAPHIC ストリング定数もサポートされます。 16 進数 GRAPHIC ストリングのフォーマットは、GX の後に、アポストロフィで囲んだ一つながりの文字を続けたものです。 アポストロフィの間にある文字は、4 つの 16 進数字の偶数倍でなければなりません。 16 進数字の数は 16 336 を超えてはなりません。 これを超えると、エラー (SQLSTATE 54002) が戻されます。 16 進 GRAPHIC ストリング定数の形式が正しくない場合には、エラーが戻されます (SQLSTATE 42606)。 4 つの数字から成るグループはそれぞれ、1 つの GRAPHIC 文字に対応します。 Unicode データベースでは、これは、1 つの UCS-2 GRAPHIC 文字になります。
GX'FFFF'
Unicode データベース内のビット・パターン '1111111111111111' を表します。
GX'005200690063006B'
Unicode データベース内の ASCII ストリング 'Rick' の VARGRAPHIC パターンを表します。日時定数 は、日付、時刻、またはタイム・スタンプを指定します。
Unicode データベースでは、可変長 UCS-2 GRAPHIC ストリング定数を指定する 16 進 UCS-2 GRAPHIC ストリングがサポートされます。 16 進数 UCS-2 GRAPHIC ストリング定数のフォーマットは、UX の後に、 アポストロフィで囲んだ一つながりの文字を続けたものです。 アポストロフィの間にある文字は、4 つの 16 進数字の偶数倍でなければなりません。 16 進数字の数は 16 336 を超えてはなりません。 これを超えると、エラー (SQLSTATE 54002) が戻されます。 16 進 UCS-2 GRAPHIC ストリング定数の形式が正しくない場合には、エラーが戻されます (SQLSTATE 42606)。 4 つの数字から成るグループはそれぞれ、1 つの UCS-2 GRAPHIC 文字に対応します。
UX'0042006F006200620079'
ASCII ストリング 'Bobby' の VARGRAPHIC パターンを表します。ブール定数は、キーワード TRUE または FALSE を指定し、それぞれ真と偽の値を表します。CAST(NULL AS BOOLEAN) を使用すると、不明の真の値を指定できます。