宣言された列の長さが128バイトより大きい可変長の列は表外に保存されます。宣言された列の長さが128バイト以下の可変長の列は、表内に保存されます。文字セマンティクスの場合、表外に保存されるバイトの数はキャラクタ・セットによって異なります。たとえば、文字ごとに4バイトが必要なキャラクタ・セットでは、宣言された列の長さが32(128/4)より大きい可変長の列は表外に保存されます。
それぞれのデータ型の記憶域の要件は、次のとおりです。
CHAR (n[BYTE|CHAR])
nバイト、または文字セマンティクスを使用する場合はn文字。文字セマンティクスを使用する場合、列長(n)は、長さセマンティクスとキャラクタ・セットに基づきます。
VARCHAR2 (n[BYTE|CHAR])
NOT INLINE列の場合:
32ビット・プラットフォームでは、値の長さ+20バイト(最小28バイト)。
64ビット・プラットフォームでは、値の長さ+24バイト(最小40バイト)。
INLINE列の場合:
32ビット・プラットフォームでは、n + 4バイト。
64ビット・プラットフォームでは、n + 8バイト。
文字セマンティクスを使用する場合、列長(n)は、長さセマンティクスとキャラクタ・セットに基づきます。
NCHAR(n)
必要なバイト数は2×nです。nは文字数です。
NVARCHAR2 (n)
32ビット・プラットフォームでは、2×(値の長さ)+20バイト(最小28バイト)。
64ビット・プラットフォームでは、2×(値の長さ)+24バイト(最小40バイト)。
32ビット・プラットフォームでは、2×(列の長さ)+4バイト。
64ビット・プラットフォームでは、2×(列の長さ)+8バイト。
TT_TINYINT
1バイト。
TT_SMALLINT
2バイト。
TT_INT[EGER]
4バイト。
TT_BIGINT
8バイト。
NUMBER
5から22バイト。
BINARY_FLOAT
BINARY_DOUBLE
TT_DECIMAL(p,s)
約p/2バイト。
TT_TIME
TT_DATE
DATE
7バイト。
TT_TIMESTAMP
TIMESTAMP
12バイト。
BINARY (n)
nバイト。
VARBINARY (n)
32ビット・プラットフォームでは、列の長さ+4バイト。
64ビット・プラットフォームでは、列の長さ+8バイト。
INTERVAL
TimesTenでは、INTERVALを格納することはできません。