Skip to main content

DB2 Type Support

Foundations JDBC provides support for IBM DB2's type system, including DECFLOAT, double-byte character types (GRAPHIC/VARGRAPHIC/DBCLOB), XML, and ROWID.

Integer Types

DB2 TypeJava TypeNotes
SMALLINTShort16-bit integer
INTEGER / INTInteger32-bit integer
BIGINTLong64-bit integer
Db2Type<Short> smallType = Db2Types.smallint;
Db2Type<Integer> intType = Db2Types.integer;
Db2Type<Long> bigType = Db2Types.bigint;

Fixed-Point Types

DB2 TypeJava TypeNotes
DECIMAL / NUMERICBigDecimalExact numeric
DECIMAL(p,s)BigDecimalWith precision and scale
DECFLOATBigDecimalDB2-specific decimal floating point (16 or 34 digits)
Db2Type<BigDecimal> decType = Db2Types.decimal;
Db2Type<BigDecimal> preciseType = Db2Types.decimal(10, 2);
Db2Type<BigDecimal> decfloatType = Db2Types.decfloat;
Db2Type<BigDecimal> decfloat16 = Db2Types.decfloat(16);

Floating-Point Types

DB2 TypeJava TypeNotes
REALFloatSingle precision
DOUBLE / FLOATDoubleDouble precision
Db2Type<Float> realType = Db2Types.real;
Db2Type<Double> doubleType = Db2Types.double_;

Boolean

DB2 TypeJava TypeNotes
BOOLEANBooleanNative since DB2 11.1
Db2Type<Boolean> boolType = Db2Types.boolean_;

String Types (Single-Byte)

DB2 TypeJava TypeNotes
CHAR / CHARACTERStringFixed-length
CHAR(n)StringFixed-length with size
VARCHARStringVariable-length
VARCHAR(n)StringVariable-length with size
CLOBStringCharacter Large Object
Db2Type<String> charType = Db2Types.char_;
Db2Type<String> char10 = Db2Types.char_(10);
Db2Type<String> varcharType = Db2Types.varchar;
Db2Type<String> varchar255 = Db2Types.varchar(255);
Db2Type<String> clobType = Db2Types.clob;

String Types (Double-Byte)

DB2 has dedicated types for double-byte character set (DBCS) strings.

DB2 TypeJava TypeNotes
GRAPHICStringFixed-length DBCS
GRAPHIC(n)StringFixed-length DBCS with size
VARGRAPHICStringVariable-length DBCS
VARGRAPHIC(n)StringVariable-length DBCS with size
DBCLOBStringDouble-byte CLOB
Db2Type<String> graphicType = Db2Types.graphic;
Db2Type<String> graphic10 = Db2Types.graphic(10);
Db2Type<String> vargraphicType = Db2Types.vargraphic;
Db2Type<String> dbclobType = Db2Types.dbclob;
note

DB2's JSON_OBJECT does not support GRAPHIC, VARGRAPHIC, or DBCLOB types. JSON serialization is not available for these types.

Binary Types

DB2 TypeJava TypeNotes
BINARYbyte[]Fixed-length binary
BINARY(n)byte[]Fixed-length binary with size
VARBINARYbyte[]Variable-length binary
VARBINARY(n)byte[]Variable-length binary with size
BLOBbyte[]Binary Large Object
Db2Type<byte[]> binaryType = Db2Types.binary;
Db2Type<byte[]> binary16 = Db2Types.binary(16);
Db2Type<byte[]> varbinaryType = Db2Types.varbinary;
Db2Type<byte[]> blobType = Db2Types.blob;
note

DB2's JSON_OBJECT does not support BINARY, VARBINARY, or BLOB types. JSON serialization is not available for these types.

Date/Time Types

DB2 TypeJava TypeNotes
DATELocalDateDate without time
TIMELocalTimeTime without date
TIMESTAMPLocalDateTimeTimestamp without timezone
TIMESTAMP(p)LocalDateTimeWith fractional seconds precision
Db2Type<LocalDate> dateType = Db2Types.date;
Db2Type<LocalTime> timeType = Db2Types.time;
Db2Type<LocalDateTime> tsType = Db2Types.timestamp;
Db2Type<LocalDateTime> ts6 = Db2Types.timestamp(6);

Special Types

DB2 TypeJava TypeNotes
XMLXmlNative XML support
ROWIDbyte[]DB2 row identifier
Db2Type<Xml> xmlType = Db2Types.xml;
Db2Type<byte[]> rowidType = Db2Types.rowid;
note

DB2's JSON_OBJECT does not support the XML type. JSON serialization is not available for XML columns.