1.4 定数

定数は,プログラム中で値を変更できないデータです。定数には,数値を表す数定数と文字列を表す文字列定数各国文字列定数,及び混在文字列定数があります。

SQLで指定できる定数を次の図に示します。

図1-4 SQLで指定できる定数

[図データ]

定数の表記法を次の表に示します。

表1-11 定数の表記法

定 数表 記 法HiRDBで解釈するデータ型
整数定数※1〔符号〕符号なし整数
(例) -123
      45
     6789
符号なし整数は,数字の並びで表します。
符号は,+,又は-で表します。
INTEGER
10進数定数〔符号〕整数部.小数部
(例)   12.3
    -456.
       .789
整数部と小数部は符号なし整数で表します。整数と小数のどちらかを指定する必要があります。小数点は必ず付けてください。DECIMAL(m〔,n〕)
m,nは表記したけた数
浮動小数点数定数仮数E指数
(例) 1.0E2
     .5E+67
仮数は整数定数,又は10進数定数で表します。指数は1~3けたの整数定数で表します。指数は10のべき乗を表します。文字「E」は必ず付けてください。FLOAT
文字列定数※3'文字列'
(例)'HITACHI'
   '88'
   '''95.7.30'
文字列は半角文字の列で表します。文字列にアポストロフィを書く場合,1個のアポストロフィを表すのに,2個続けて書いてください。文字列の長さは32,000バイト以内です。VARCHAR(n)
nは表記した文字列長※2
16進文字列定数※6X'16進文字列'
(例)X'82A0'
   X'82a0'
16進文字列は,0~9,及びA~F(又はa~f)で表します。16進文字列の長さは64,000文字以内で,2の倍数にしてください。16進文字2文字で1バイトとなります。VARCHAR(n)
nは表記した文字列長÷2※2
各国文字列定数※3※4※5N'各国文字列'
(例)N'SQL文法'
文字列は全角文字の列で表します。文字列の長さは16,000文字以内です。NVARCHAR(n)
nは表記した文字列長※2
混在文字列定数※3※4M'文字列'
(例)M'1996年'
文字列は半角文字と全角文字の列で表します。文字列の長さは32,000バイト以内です。MVARCHAR(n)
nは表記した文字列長※2
日付や時刻は,既定の文字列表現の定数として指定できます。また,日間隔や時間隔は10進数表現の定数(10進数定数)としてSQL中に指定できます。
注※1
整数定数の値の範囲を超える定数を整数定数の表記法で指定すると,HiRDBは,定数の右側に小数点を仮定し,10進数定数が指定されたものと解釈します。
注※2
長さ0の文字列定数(' ',X' ',N' ',M' ')の場合,nは1です。
注※3
COMMENT文,EXECUTE IMMEDIATE文,及びPREPARE文に指定する文字列については,各SQL文の文法詳細を参照してください。
注※4
pdsetupコマンドで文字コード種別にlang-cを指定した場合,各国文字列定数,及び混在文字列定数は使用できません(UNIX版限定)。
注※5
pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にutf-8,又はchinese-gb18030を指定した場合,各国文字列定数は使用できません。
注※6
16進文字列定数は,文字列定数と記述の形式が異なるだけです。マニュアル中の文字列定数に関する記述は,16進文字列定数にも適用されます。

 

数定数の使用上の制限を次の表に示します。

表1-12 数定数の使用上の制限

数定数範 囲指定できるけた数の最大値
(上位の無効数字0のけた数を含む)
整数定数-2147483648​~2147483647​10けた
10進数定数-(1038-1)~-10-37,0,
1037~1038-1
38けた
浮動小数点数定数約-1.7×10308~-4.9×10-324,0,
約4.9×10324~1.7×10308
仮数部:17けた
指数部:3けた
注※
値の範囲は,ハードウェア表現に依存します。
<この節の構成>
1.4.1 日付データの既定の文字列表現
1.4.2 時刻データの既定の文字列表現
1.4.3 時刻印データの既定の文字列表現
1.4.4 日間隔データの10進数表現
1.4.5 時間隔データの10進数表現
1.4.6 日時間隔データの10進数表現