Data Mapping

The datatypes used by an Oracle database are not exactly the same as the datatypes in Java. Table 11-1 summarizes the mapping from Java database datatypes to Oracle datatypes.

Some of the java.lang datatypes are wrapper classes for the Java primitive datatypes that can accept a NULL reference, because normal Java datatypes cannot. To retrieve a value from a wrapper class, use the appropriate method typeValue( ) for each wrapper class.

Table 11-1. Datatype mapping between Java and Oracle

Java datatype

Oracle datatype

java.sql.Array

ARRAY

java.sqlBlob

BLOB

Boolean

java.lang.Boolean

NUMBER

byte

java.lang.byte

NUMBER

byte[]

RAW

LONGRAW

java.slq.Clob

CLOB

java.sql.date

DATE

double

java.lang.double

NUMBER

float

java.lang.float

NUMBER

int

java.lang.Integer

NUMBER

long

java.lang.Long

NUMBER

java.sql.Ref

REF

short

java.lang.Short

NUMBER

java.lang.string

VARCHAR2

LONG

RAW

java.sql.Struct

STRUCT

java.sql.time

DATE

java.sql.timestamp

DATE

java.math.BigDecimal(recommended)

NUMBER

There are also sets of Oracle extensions for the following Oracle datatypes. The oracle.sql.NUMBER extension allows you to store and retrieve Oracle NUMBER data without losing any precision.

oracle.sql.ARRAY

oracle.sql.NUMBER

oracle.sql.BFILE

oracle.sql.RAW

oracle.sql.BLOB

oracle.sql.REF

oracle.sql.CHAR

oracle.sql.ROWID

oracle.sql.CLOB

oracle.sql.STRUCT

oracle.sql.DATE

Get Oracle in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.