Oracle Databaseデータ型とTimesTenデータ型の間のマッピング

TimesTenキャッシュ表の列に対してデータ型を選択する場合は、Oracle Database表の列のデータ型を考慮し、キャッシュ表の列に対して同等または互換性のあるデータ型を選択してください。

ノート:

パススルーを含め、TimeTenのキャッシュはOracle Database ROWIDデータ型をサポートしません。ただし、SQL問合せのSELECTリストで指定されている場合は、ROWIDデータ型をCHAR(18)データ型にキャストできます。

次の例では、ROWIDデータ型をキャストしないときに返されるエラーを示します。次に、この例では、ROWIDデータ型をCHAR(18)データ型に正しくキャストする方法を示します。

Command> SET PASSTHROUGH 3;
Passthrough command has set autocommit off.
Command> SELECT ROWID FROM dual;
 5115: Unsupported type mapping for column ROWID
The command failed.
Command> SELECT CAST (ROWID AS CHAR(18)) FROM DUAL;
< AAAAB0AABAAAAEoAAA >
1 row found.

主キーおよび外部キーの列は、キー以外の列と区別されます。キャッシュ表のキー列で使用可能なデータ型マッピングを表C-2に示します。

表C-2 キー列で使用可能なデータ型マッピング

Oracle Databaseデータ型 TimesTenデータ型

NUMBER(p,s)

NUMBER(p,s)

ノート: DECIMAL(p,s)またはNUMERIC(p,s)も使用できます。これらはNUMBER(p,s)の別名です。

NUMBER(p,0)

INTEGER

TT_TINYINT

TT_SMALLINT

TT_INTEGER

TT_BIGINT

NUMBER(p,0)

NUMBER

TT_TINYINT

TT_SMALLINT

TT_INTEGER

TT_BIGINT

NUMBER

CHAR(n)

CHAR(n)

VARCHAR2(n)

VARCHAR2(n)

RAW(n)

VARBINARY(n)

DATE

DATE

TIMESTAMP(n)

TIMESTAMP(n)

NCHAR(n)

NCHAR(n)

NVARCHAR2(n)

NVARCHAR2(n)

表C-3に、キャッシュ表のキー以外の列のデータ型マッピングを示します。

表C-3 キー以外の列で使用可能なデータ型マッピング

Oracle Databaseデータ型 TimesTenデータ型

NUMBER(p,s)

NUMBER(p,s)

REAL

FLOAT

BINARY_FLOAT

DOUBLE

BINARY_DOUBLE

NUMBER(p,0)

INTEGER

TT_TINYINT

TT_SMALLINT

TT_INTEGER

TT_BIGINT

NUMBER(p,0)

FLOAT

BINARY_FLOAT

DOUBLE

BINARY_DOUBLE

NUMBER

TT_TINYINT

TT_SMALLINT

TT_INTEGER

TT_BIGINT

NUMBER

REAL

FLOAT

BINARY_FLOAT

DOUBLE

BINARY_DOUBLE

CHAR(n)

CHAR(n)

VARCHAR2(n)

VARCHAR2(n)

RAW(n)

VARBINARY(n)

LONG

VARCHAR2(n)

ここで、nは、VARCHAR2データ型に対して定義された範囲内の任意の有効な値に設定できます。

LONG RAW

VARBINARY(n)

ここで、nは、VARBINARYデータ型に対して定義された範囲内の任意の有効な値に設定できます。

DATE

DATE

TIMESTAMP(0)

TIMESTAMP(n)

TIMESTAMP(n)

FLOAT(n)

ノート: DOUBLEおよびFLOATが含まれ、いずれもFLOAT(126)に相当します。REALも含まれますが、これはFLOAT(63)に相当します。

FLOAT(n)

BINARY_DOUBLE

ノート: FLOAT(126)は、DOUBLEとして宣言できます。FLOAT(63)は、REALとして宣言できます。

BINARY_FLOAT

BINARY_FLOAT

BINARY_DOUBLE

BINARY_DOUBLE

NCHAR(n)

NCHAR(n)

NVARCHAR2(n)

NVARCHAR2(n)

CLOB

VARCHAR2(n)

ここで、1 <= n <= 4MBです。

BLOB

VARBINARY(n)

ここで、1 <= n <= 4MBです。

NCLOB

NVARCHAR2(n)

ここで、1 <= n <= 2MBです。