1.3.1 データ型の一覧
XDBで使用できるデータ型を次の表に示します。
表1-10 XDBで使用できるデータ型
項番 | 分類 | データ型 | データ形式 |
---|
1 | 数データ | INTEGER | 整数(4バイト) |
2 | SMALLINT※ | 整数(2バイト) |
3 | DECIMAL | 固定小数点数 |
4 | 文字データ | CHARACTER | 固定長文字列 |
5 | VARCHAR※ | 可変長文字列 |
6 | 時刻印データ | TIMESTAMP | 年,月,日,時,分,秒の六つの属性を持つ時刻印 |
7 | 行IDデータ | ROWID | 行ID(12バイト) |
- 注※
- ディクショナリ表だけで使用できます。
- <この項の構成>
- (1) 数データ
- (2) 文字データ
- (3) 時刻印データ
- (4) 行IDデータ
(1) 数データ
(a) INTEGER型(整数)
- 値の範囲が-2147483648~2147483647の整数を扱うデータ型です。INTまたはINTEGERと記述します。
- データは,4バイトの2進形式です。
- 定数は,100,200のように表現します。定数表現については,「1.4 定数」を参照してください。
(b) SMALLINT型(整数)
- 列のデータ型としては指定できません。
- 値の範囲が-32768~32767の整数を扱うデータ型です。
- データは,2バイトの2進形式です。
- 定数は,100,200のように表現します。定数表現については,「1.4 定数」を参照してください。
(c) DECIMAL型(固定小数点数)
- 固定小数点数を扱うデータ型です。{DEC|DECIMAL}〔(m〔,n〕)〕と記述します。
- 精度(全体のけた数)をm,位取り(小数秒のけた数)をnで指定します。
- m,nは正の整数で,1≦m≦29,0≦n≦29,n≦mです。
- mを省略すると,29が仮定されます。
- nを省略すると,0が仮定されます。
- データは,↓m÷2↓+1バイトのパック10進形式です。
- データは,次の図に示すように4ビットで1けたの数値を表し,末尾の4ビットに符号を持ちます。
図1-6 DECIMAL型のデータ形式
![[図データ]](figure/zu010060.gif)
- 符号部の値が0xCの場合,正の値として扱い,符号部の値が0xDの場合,負の値として扱います。ただし,符号部の値が前述以外の場合は,不正なデータと見なされます。また,数の値が0の場合,符号部の値は,0xCでなければなりません。
- 精度が偶数の場合,データの先頭4ビットは,0x0でなければなりません。
- 定数は,123.4,12.345のように表現します。定数表現については,「1.4 定数」を参照してください。
(2) 文字データ
(a) CHARACTER型(固定長文字列)
- 固定長文字列を扱うデータ型です。{CHAR|CHARACTER}〔(n)〕と記述します。
- 文字列の長さ(バイト数)をnで指定します。
- nは,1~32000の整数でなければなりません。
- nを省略すると,1が仮定されます。
- 入力するデータの長さ(バイト数)は,nと等しくなければなりません。
- 定数は,'char','Char','charChar'のように表現します。定数表現については,「1.4 定数」を参照してください。
- 半角文字,全角文字の両方とも扱うことができます。
- 文字データの比較を行う場合,文字コードの大小が比較するデータの大小となります。
(b) VARCHAR型(可変長文字列)
- 列のデータ型としては指定できません。
- 可変長文字列を扱うデータ型です。
- 文字列の最大の長さ(バイト数)をnで指定します。
- nは省略できません。
- データは,次の図に示すように文字列の長さを2バイトで表します。
図1-7 VARCHAR型のデータ形式
![[図データ]](figure/zu010070.gif)
- 半角文字,全角文字の両方とも扱うことができます。また,文字列の長さが0バイトのデータを扱うこともできます。
- 文字データの比較を行う場合,文字コードの大小が比較するデータの大小となります。
(3) 時刻印データ
(a) TIMESTAMP型(時刻印)
- 年,月,日,時,分,秒の六つの属性を持つ時刻印のデータ型で,TIMESTAMP〔(p)〕と記述します。
- 秒数の小数点以下のけたをpで指定します。
- pは,0,2,4または6でなくてはなりません。
- pを省略すると,0が仮定されます。
- 入力するデータの長さ(バイト数)は,7+p÷2と等しくなくてはなりません。
図1-8 TIMESTAMP型のデータ形式
![[図データ]](figure/zu010080.gif)
- 定数は,TIMESTAMP'2008-07-08 11:03:58.12',TIMESTAMP'2008-07-08 11:03:58.1234',TIMESTAMP'2008-07-08 11:03:58.123456'のように表現します。定数表現については,「1.4 定数」を参照してください。
(4) 行IDデータ
(a) ROWID型
- 列のデータ型としては指定できません。
- 表に格納された行を識別する値を扱うデータ型です。
- このデータ型を定数として表現することはできません。必ず,特殊レジスタのROWIDを指定して取得した値を使用してください。特殊レジスタのROWIDを指定して取得した値以外を指定した場合の動作は保証されません。特殊レジスタのROWIDについては,「1.5 特殊レジスタ」を参照してください。