データ型の仕様

表1-1に、TimesTenでサポートされるデータ型を示します。

表1-1 サポートされているデータ型

データ型 説明

BINARY(n)

nバイトの固定長バイナリの値

nに対してサポートされる値の範囲は、1から8300までです。BINARYデータは、後続の0(ゼロ)を使用してその列の最大長まで調整されます。かわりに、TT_BINARY(n)を指定することもできます。

詳細は、「BINARYデータ型およびVARBINARYデータ型」を参照してください。

BINARY_DOUBLE

64ビットの浮動小数点数

BINARY_DOUBLEは、+Inf-InfおよびNaN値をサポートする倍精度ネイティブ浮動小数点数です。BINARY_DOUBLEは指数と小数部からなる近似値です。指数またはE表記法を使用できます。BINARY_DOUBLEにはバイナリ精度53が指定されています。

正の最小有限値: 2.22507485850720E-308

正の最大有限値: 1.79769313486231E+308

詳細は、「BINARY_DOUBLE」を参照してください。

BINARY_FLOAT

32ビットの浮動小数点数

BINARY_FLOATは、+Inf-InfおよびNaN値をサポートする単精度ネイティブ浮動小数点型です。BINARY_FLOATは指数と小数部からなる近似値です。指数またはE表記法を使用できます。BINARY_FLOATにはバイナリ精度24が指定されています。

正の最小有限値: 1.17549E-38F

正の最大有限値: 3.40282E+38F

詳細は、「BINARY_FLOAT」を参照してください。

BLOB

可変長バイナリ・ラージ・オブジェクト。

有効な範囲は、1バイトから16,777,216バイトまでです。

詳細は、「BLOB」を参照してください。

CHAR[ACTER][(n[BYTE|CHAR])]

長さがnバイト(n文字)の固定長文字列。

BYTEは、列にバイト長セマンティクスが使用されていることを示します。nの有効な値の範囲は、1バイトから8300バイトまでです。

CHARは、列に文字長セマンティクスが使用されていることを示します。CHARの最小長は1文字です。最大長は8300バイトに収まる文字数によって異なります。これは使用されているデータベース文字セットによって決まります。文字セットがAL32UTF8の場合、1文字当たり最大4バイトが必要になる可能性があるため、CHARの長さは、文字セットに応じて2075から8300の範囲に制限されます。

BYTEまたはCHARを指定しない場合、デフォルトはBYTEです。nを指定しない場合、デフォルトは1です。

長さが0(ゼロ)の文字列は、NULLとして解釈されます。

CHARのデータは後続の空白を使用してその列の最大長まで調整されます。空白埋め比較セマンティクスが使用されます。

詳細は、「CHAR」を参照してください。

CLOB

シングルバイト文字またはマルチバイト文字を格納する可変長キャラクタ・ラージ・オブジェクト。

有効な範囲は、データベース文字セットに応じて1バイトから4,194,304バイトまでのデータです。具体的には、CLOBの最大サイズはバイト数(4,194,304バイト)で規定されていますが、CLOBデータ型には文字を格納します。データベース文字セットと格納されている実際の文字に応じて、CLOBデータ型には1,048,576文字から4,194,304文字を格納できます。

詳細は、「CLOB」を参照してください。

DATE

日付と時刻の情報(世紀、年、月、日、時、分、秒)

書式は次のとおりです:

YYYY-MM-DD HHMISS

有効な日付の範囲は紀元前4712年1月1日から西暦9999年12月31日です。

小数秒はありません。

詳細は、「DATE」を参照してください。

INTERVAL [+/-] IntervalQualifier

時間隔型

TimesTenでは、INTERVAL型とIntervalQualifierで表現される時間隔型を部分的にサポートします。IntervalQualifierでは、精度を持たない単一フィールド型のみを指定できます。デフォルトの先行精度は、すべての時間隔型で8桁です。単一フィールド型には、年、月、日、時間、分または秒を指定できます。現在、時間隔型に指定できるのは定数のみです。

ノート: 時間隔型の列は指定できません。実行時にSQL式で使用される非永続型があります。さらに、時間隔データ型が返される比較では、時間隔データ型を完結した式の最終結果に使用することはできません。この時間隔の結果から必要な要素を抽出するには、EXTRACT関数を使用する必要があります。

詳細は、「TimesTenの時間隔」を参照してください。

NCHAR[(n)]

n×2バイトのUnicode文字の固定長文字列

必要なバイト数は2*nです。このnは指定された文字数です。NCHAR文字制限はバイト制限の半分であるため、最大サイズは4150です。

長さが0(ゼロ)の文字列は、NULLとして解釈されます。

NCHARのデータはU+0020 SPACEを使用してその列の最大長まで調整されます。空白埋め比較セマンティクスが使用されます。

詳細は、「NCHAR」を参照してください。

NCLOB

Unicode文字を格納する各国語可変長キャラクタ・ラージ・オブジェクト。

有効な範囲は、1文字から2,097,152文字までです。

詳細は、「NCLOB」を参照してください。

NUMBER[(p [,s])]

精度とスケールが指定された数値。

精度の範囲は1から38桁です。スケールの範囲は-84から127です。精度とスケールの両方ともオプションです。

精度およびスケールを指定しない場合は、最大精度の38および柔軟なスケールが指定されたとみなされます。

NUMBERは、負のスケールおよび精度より大きいスケールをサポートしています。

NUMBERは、1.0 x 10-130から1.0 x 10126未満の絶対値を含む正と負の固定数値および0(ゼロ)を格納します。値が1.0 x 10126以上の絶対値である算術式を指定すると、エラーが戻されます。

詳細は、「NUMBER」を参照してください。

NVARCHAR2(n)

n×2バイトのUnicode文字の可変長文字列。

必要なバイト数は2*nです。このnは指定された文字数です。NVARCHAR2文字の制限は、バイト制限の半分になります。

有効な範囲は、1文字から2,097,152文字までです。

nは指定する必要があります。

長さが0(ゼロ)の文字列は、NULLとして解釈されます。

非空白埋め比較セマンティクスが使用されます。

詳細は、「NVARCHAR2」を参照してください。

ROWID

TimesTen Classicで表の行またはマテリアライズド・ビューの行のアドレスを表す18バイトの文字列。

リテラルのROWID値は、一重引用符で囲んでCHAR定数として指定してください。

詳細は、「ROWIDデータ型」を参照してください。

TIME

00:00:00(午前0時)から23:59:59(午後11時59分59秒)の間の時刻

書式は、HH:MI:SSです。

かわりに、TT_TIMEを指定することもできます。

詳細は、「TIME」を参照してください。

TIMESTAMP

[(fractional_seconds_precision)]

日付の年、月および日の値に加えて、時間の時、分および秒の値

fractional_seconds_precisionは、秒のフィールドの小数部の桁数です。有効な日付の範囲は紀元前4712年1月1日から西暦9999年12月31日です。

TT_TIMESTAMPの記憶域サイズはTIMESTAMPより小さくなります。TT_TIMESTAMPの処理速度はTIMESTAMPより速くなります。これは、TT_TIMESTAMPが1753年1月1日以降のマイクロ秒数を含む8バイトの整数であるためです。比較が非常に速くなります。TIMESTAMPでは紀元前4712年以降の日時データを格納できるため、TIMESTAMPの範囲はTT_TIMESTAMPより大きくなります。また、TIMESTAMPでは最大9桁の小数秒の精度がサポートされ、TT_TIMESTAMPでは6桁の小数秒の精度がサポートされています。

小数秒の精度の範囲は0(ゼロ)から9です。デフォルトは6です。書式は次のとおりです:

YYYY-MM-DD HH:MI:SS [.FFFFFFFFF]

詳細は、「TIMESTAMP」を参照してください。

TT_BIGINT

範囲が-9,223,372,036,854,775,808から9,223,372,036,854,775,807までの符号付き8バイト整数。

NUMBERデータ型ではなくTT_BIGINTを使用します。TT_BIGINTは、NUMBER型より小さいサイズで、高速なパフォーマンスを提供します。19桁より大きい整数を格納する必要がある場合は、NUMBER(p)を使用してください(p > 19)。

詳細は、「TT_BIGINT」を参照してください。

TT_DATE

日付情報(世紀、年、月、日)

書式はYYYY-MM-DD(MMは2006-10-28のような整数で表される)です。

有効な日付は、1753-01-01(1753年1月1日)から9999-12-31(9999年12月31日)の間の日付です。

詳細は、「TT_DATE」を参照してください。

TT_INTEGER

範囲が-2,147,483,648から2,147,483,647までの符号付き整数。

TT_INTEGERはネイティブの符号付き整数データ型です。INTEGERではなくTT_INTEGERを使用します。INTEGERNUMBERデータ型にマップされます。TT_INTEGERは、NUMBER型より小さいサイズで、高速なパフォーマンスを提供します。19桁より大きい整数を格納する必要がある場合は、NUMBER(p)を使用してください(p > 19)。

詳細は、「TT_INTEGER」を参照してください。

TT_SMALLINT

範囲が-32,768から32,767までのネイティブ符号付き16ビット整数。

SMALLINTではなくTT_SMALLINTを使用します。SMALLINTNUMBERデータ型にマップされます。

TT_SMALLINTは、NUMBER型より小さいサイズで、高速なパフォーマンスを提供します。19桁より大きい整数を格納する必要がある場合は、NUMBER(p)を使用してください(p > 19)。

詳細は、「TT_SMALLINT」を参照してください。

TT_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 [.FFFFFFFFF]です。

TT_TIMESTAMPは、TIMESTAMPより記憶域サイズが小さく、処理速度はTIMESTAMPより速くなります。これは、TT_TIMESTAMPが1753年1月1日以降のマイクロ秒数を含む8バイトの整数であるためです。比較が非常に速くなります。TIMESTAMPでは紀元前4712年以降の日時データを格納できるため、TIMESTAMPの範囲はTT_TIMESTAMPより大きくなります。また、TIMESTAMPでは最大9桁の小数秒の精度がサポートされ、TT_TIMESTAMPでは6桁の小数秒の精度がサポートされています。

TT_TIMESTAMP(6)を指定できます。

詳細は、「TT_TIMESTAMP」を参照してください。

TT_TINYINT

0から255までの範囲の符号なし整数。

NUMBERデータ型ではなくTT_TINYINTを使用します。TT_TINYINTは、NUMBER型より小さいサイズで、高速なパフォーマンスを提供します。19桁より大きい整数を格納する必要がある場合は、NUMBER(p)を使用してください(p > 19)。

TT_TINYINTは符号なしのため、TT_TINYINTを否定するデータ型はTT_SMALLINTになります。

詳細は、「TT_TINYINT」を参照してください。

VARBINARY(n)

最大長がnバイトの可変長バイナリの値。

有効な範囲は、1バイトから4,194,304バイトまでです。

かわりに、TT_VARBINARY(n)を指定することもできます。

詳細は、「BINARYデータ型およびVARBINARYデータ型」を参照してください。

VARCHAR[2](n[BYTE|CHAR])

長さがnバイト(n文字)の可変長文字列。

BYTEは、列にバイト長セマンティクスが使用されていることを示します。CHARは、列に文字長セマンティクスが使用されていることを示します。

バイト長セマンティクスの場合、有効な範囲は1バイトから4,194,304バイトまでです。

文字長セマンティクスの場合、有効な範囲は1文字から1,048,576文字までです。

BYTEまたはCHARを指定しない場合、デフォルトはBYTEです。nの値は指定する必要があります。

長さが0(ゼロ)の文字列は、NULLとして解釈されます。

非空白埋め比較セマンティクスが使用されます。

VARCHAR型は使用しないでください。VARCHAR型は現在VARCHAR2と同じ意味で使用されていますが、再定義される予定です。

詳細は、「VARCHAR2」を参照してください。