Oracle Cache Mapping

This section discusses the data type mappings and restrictions for caches stored on Oracle.

Oracle changes any empty string stored in a VARCHAR2 or NVARCHAR2 column to NULL. This can alter empty string data stored in such columns.

FLOAT columns have a maximum of 126 digits, equivalent to a floating-point number with exponent E125. TDV FLOAT values have a maximum of E38 and DOUBLE values have a maximum of E308. This is why VARCHAR is used to store TDV DOUBLE values by default. However, you can use the FLOAT type if your values fit within that range.

Data Type

Preferred Data Type

Other Allowed Native Types

BIGINT

NUMBER(19, 0)

NUMBER(19+, 0), VARCHAR(20+), NVARCHAR(20+)

BINARY(n)

RAW(n);
BLOB [if n > 255]

RAW(n+), BLOB

BIT

NUMBER(1, 0)

NUMBER(1+, 0)

BLOB

BLOB

 

BOOLEAN

NUMBER(1,0)

NUMBER(1+,0)

CHAR(n)

CHAR(n);
CLOB [if n > 2000]

CHAR(n+), VARCHAR2(n+), NVARCHAR2(n+), CLOB

CLOB

CLOB

 

DATE

VARCHAR2(10)

VARCHAR2(10+), NVARCHAR2(10+)

DECIMAL(p,s)

NUMBER(p,s);
CLOB [if p > 38]

NUMBER(p+,s+), VARCHAR2(p+ 3+), NVARCHAR2(p+3+), CLOB

DOUBLE

VARCHAR(24)

VARCHAR(24+), FLOAT, BINARY DOUBLE

FLOAT

FLOAT

VARCHAR(24+), FLOAT, BINARY FLOAT, BINARY DOUBLE

INTEGER

NUMBER(10, 0)

NUMBER(10+, 0), VARCHAR(20+), NVARCHAR(20+)

NUMERIC(p,s)

NUMBER(p,s);
CLOB [if p > 38]

NUMBER(p+,s+), VARCHAR2(p+ 3+), NVARCHAR2(p+3+), CLOB

OTHER

[cannot be cached]

 

SMALLINT

NUMBER(5, 0)

NUMBER(5+, 0), VARCHAR(20+), NVARCHAR(20+)

TIME

VARCHAR2(15)

VARCHAR2(15+), NVARCHAR2(15+)

TIMESTAMP

TIMESTAMP(9)

 

TINYINT

NUMBER(3, 0)

NUMBER(3+, 0), VARCHAR(20+), NVARCHAR(20+)

VARBINARY(n)

RAW(n);
BLOB [if n > 255]

RAW(n+), BLOB

VARCHAR(n)

VARCHAR(n);
CLOB [if n > 4000]

VARCHAR2(n+), NVARCHAR2(n+), CLOB

XML

CLOB

VARCHAR(*), NVARCHAR2(*) [Truncates data if column is too small]