ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

データ型の仕様

TimesTenでは次のデータ型がサポートされます。

データ型
説明
英数字
 
CHAR[ACTER][(n)]
n バイトの固定長文字列で、n には1から8300までの整数を指定します。デフォルトのサイズはCHAR(1)です。キーワードCHARはCHARACTERのシノニムです。空の領域には空白が埋め込まれます。
CREATE TABLE SAMPLE (col1
CHAR, col2 CHARACTER, col3
CHAR(10)); 
最初の2列にはそれぞれ1文字が保存され、列3には10文字の文字列が保存されます。
VARCHAR(n)
nバイト以下の可変長の文字列。nには1から4194304(222)までの整数を指定します。
CREATE TABLE sample (col1
VARCHAR(100)); 
この列には、最大100文字が保存されます。
NCHAR[(n)]
n×2バイトのUnicode文字の固定長文字列です。nは1から4150までの整数である必要があります。デフォルトのサイズはNCHAR(1)です。NCHARデータ型は、Unicodeの空白文字U+0020 SPACEを使用して指定した長さまで調整されます。キーワードNATIONAL CHARACTERとNATIONAL CHARはNCHARのシノニムです。
CREATE TABLE SAMPLE (COL1
NCHAR, COL2 NATIONAL
CHARACTER, 
COL3 NCHAR(10)); 
最初の2列には、それぞれ単一のUnicode文字が保存されます。列3には、10文字のUnicode文字が保存されます。
NVARCHAR(n)
n×2バイト以下のUnicode文字の可変長文字列です。nは1から2,097,152(221)までの整数である必要があります。キーワードNATIONAL CHARACTER VARYING、NATIONAL CHAR
VARYING、NCHAR VARYING は、NVARCHARのシノニムです。
CREATE TABLE SAMPLE (COL1
NVARCHAR(100)); 
この列には、最大100文字のUnicode文字が保存されます。
数値
 
DOUBLE
[PRECISION],
FLOAT [(53)]
長い(64ビット)浮動小数点数です。指数と小数部から成る近似値です。サポートされるFLOAT(53)の最大値は1.7E+308以上で、最小値は-1.7E+308以下です。DOUBLEの値を指定するには、指数またはE表記法を使用します。DOUBLEは、FLOAT(53)のシノニムです。FLOATの精度を指定しない場合のデフォルト値は53です。
CREATE TABLE sample(col1
DOUBLE, col2 DOUBLE
PRECISION, col3 FLOAT, col4
FLOAT(53)); 
4つの列はすべて同じデータ型です。
REAL
FLOAT (24)
短い(32ビット)浮動小数点数。これは指数と小数部から成る近似値です。サポートされるFLOAT(24)の最大値は3.4E+38以上で、最小値は-3.4E+38以下です。指数またはE表記法を使用してREALの値を指定することができます。REALはFLOAT(24)のシノニムです。FLOATの精度を指定しない場合のデフォルト値は53です。
CREATE TABLE sample(col1
REAL, col2 FLOAT(24)); 
2つの列のデータ型は同じです。
DEC[IMAL][(p[,s])], NUMERIC[(p[,s])]
固定の最大精度(総桁数)とスケール(小数点の右側の桁数)を定義した正確な数値。精度pには1から40を指定します。スケールには0からpを指定します。精度のデフォルト値は40、スケールのデフォルト値は0です。
DECとNUMERICはDECIMALのシノニムです。
CREATE TABLE sample(col1
DECIMAL(5,3), col2 DEC(12,6),
col3 NUMERIC(7,2)); 
INT[EGER]
-2,147,483,648(-231)から2,147,483,647(231-1)の範囲の符号付き整数。INTはINTEGERのシノニムです。
CREATE TABLE sample (col1
int, col2 INTEGER) 
SMALLINT
-32,768(-215)から32,767(215-1)の範囲の符号付き整数。
CREATE TABLE sample (col1
SMALLINT) 
TINYINT
0から255(28-1)の範囲の符号なし整数。
CREATE TABLE sample (col1
TINYINT) 
BIGINT
-9,223,372,036,854,775,807(-263)から9,223,372,036,854,775,807(263 - 1)の範囲の符号付き8バイト整数。
CREATE TABLE sample (col1
BIGINT);
INSERT INTO sample
VALUES(123456789012345678); 
BINARY(n)
nバイトの固定長バイナリの値。nには1から8300までの整数を指定します。
CREATE TABLE sample (col1
BINARY(10)) 
VARBINARY(n)
nバイト以下の可変長のバイナリの値。nには1から4194304(222)までの整数を指定します。
CREATE TABLE sample (col1
VARBINARY(100)) 
DATE
1753-01-01(1753年1月1日)から9999-12-31(9999年12月31日)の間の日付。書式はYYYY-MM-DDです。
CREATE TABLE sample (col1
DATE) 
INSERT INTO SAMPLE VALUES
(DATE '1998-10-28'); 
TIME
00:00:00(午前0時)から23:59:59(午後11時59分59秒)の間の時刻。
CREATE TABLE sample (col1
TIME) 
INSERT INTO SAMPLE VALUES
(TIME '12:00:00'); 
TIMESTAMP
1753-01-01 00:00:00(1753年1月1日の午前0時)から9999-12-31 23: 59:59(9999年12月31日の午後11時59分59秒)の間の日付と時刻。マイクロ秒に満たない端数は、「Data truncated」エラーになります。書式は、YYYY-MM-DD:HH:MI:SS.FFFFFFです。
CREATE TABLE sample (col1
TIMESTAMP) 
INSERT INTO SAMPLE VALUES
(TIMESTAMP
'1998-10-28 12:00:00'); 
INTERVAL [+/-] IntervalQualifier
TimesTenはINTERVAL型を部分的にサポートします。INTERVAL型は、型INTERVALとIntervalQualifierで表現されます。IntervalQualifierには、精度を持たない単一のフィールド型のみを指定できます。デフォルトの先行精度は、すべてのINTERVAL型で8桁です。単一のフィールド型は、YEAR、MONTH、DAY、HOUR、MINUTE、SECONDのいずれかです。現在、INTERVAL型は定数でのみ指定できます。
SELECT * FROM t1 WHERE
SYSDATE-t1.CREATETIME =
INTERVAL '3' MONTH; 

選択するデータ型によって、次の内容を考慮する必要があります。

式で使用する値

一部の処理は、特定のデータ型を持つデータでのみ実行できます。たとえば、算術演算はINTEGER、SMALLINT、TINYINT、BIGINT、DOUBLE、INTERVALなどの数値データ型でのみ実行できます。同様に、SUMやAVGも数値データ型に対してのみ実行できます。LIKE条件によるパターン一致は、CHAR、VARCHAR、NCHAR、NVARCHAR型の英数字データでのみ実行できます。

異なるデータ型を結合する処理の結果

型は異なっても、互換性のあるデータを結合する比較や式を評価すると、小さいデータ型から大きいデータ型へ型変換されます。

ストレージのオーバーヘッド

固定長のCHAR、NCHAR、BINARYデータ型は、その列の最大長まで調整されますが、可変長のVARCHAR、NVARCHAR、VARBINARYデータ型は調整されません。可変長のデータ型には、固定長にはないストレージのオーバーヘッドが追加で少しあります。デフォルトでは、宣言された列の長さが128バイトよりも長い可変長の列は、表外に格納されます。宣言された列の長さが128バイト以下の可変長の列は、表内に格納されます。

それぞれのデータ型の記憶域の要件は、次のとおりです。

データ型
必要な記憶域
CHAR (n)
nバイト。
VARCHAR (n)
NOT INLINE列の場合:
32ビット・プラットフォームでは、列の長さ+ 20バイト(最低36バイト)。
64ビット・プラットフォームでは、列の長さ+ 40バイト(最低64バイト)。
INLINE列の場合:
32ビット・プラットフォームでは、n + 4バイト。
64ビット・プラットフォームでは、n + 8バイト。
NCHAR(n)
nバイト。
NVARCHAR(n)
NOT INLINE列の場合:
32ビット・プラットフォームでは、2×(列の長さ)+ 20バイト(最低36バイト)。
64ビット・プラットフォームでは、2×(列の長さ)+ 40バイト(最低64バイト)。
INLINE列の場合:
32ビット・プラットフォームでは、2×(列の長さ)+ 4バイト。
64ビット・プラットフォームでは、2×(列の長さ)+ 8バイト。
DOUBLE
FLOAT (53)
FLOAT
8バイト。
REAL
FLOAT (24)
4バイト。
DECIMAL(p,s)
NUMERIC (p,s)
およそp/2バイト。
INTEGER
4バイト。
SMALLINT
2バイト。
TINYINT
1バイト。
BIGINT
8バイト。
DATE
4バイト。
TIME
8バイト。
TIMESTAMP
8バイト。
BINARY (n)
nバイト。
VARBINARY (n)
NOT INLINE列の場合:
32ビット・プラットフォームでは、値の長さ+ 20バイト(最低36バイト)。
64ビット・プラットフォームでは、値の長さ+ 40バイト(最低64バイト)。
INLINE列の場合:
32ビット・プラットフォームでは、値の長さ+ 4バイト。
64ビット・プラットフォームでは、値の長さ+ 8バイト。
INTERVAL
TimesTenでは、INTERVALを格納することはできません。