Supported SQL data types in Java routines
Java™ programming language data types must be used in Java source code to store SQL data type values according to the JDBC and SQLJ application programming interface specification. IBM® Data Server Driver for JDBC and SQLJ converts the data exchanged between Java source code and a database according to specific data type mappings.
The data mappings are valid for:
- Java database applications
- Java routines defined as and implemented using PARAMETER STYLE JAVA
The Java data types
that map to SQL data types are as follows:
SQL Column Type | Java Data Type | SQL Column Type Description |
---|---|---|
SMALLINT (500 or 501) |
short | 16-bit, signed integer |
INTEGER (496 or 497) |
int | 32-bit, signed integer |
BIGINT
(492 or 493) |
long | 64-bit, signed integer |
REAL (480 or 481) |
float | Single precision floating point |
DOUBLE (480 or 481) |
double | Double precision floating point |
DECIMAL(p,s) (484 or 485) |
java.math.BigDecimal | Packed decimal |
CHAR(n) (452 or 453) |
java.lang.String | Fixed-length character string of length n where n is from 1 to 255 |
CHAR(n) FOR BIT DATA |
byte[] | Fixed-length character string of length n where n is from 1 to 255 |
VARCHAR(n) (448 or 449) |
java.lang.String | Variable-length character string |
VARCHAR(n) FOR BIT DATA |
byte[] | Variable-length character string |
LONG VARCHAR (456 or 457) |
java.lang.String | Long variable-length character string |
LONG VARCHAR FOR BIT DATA |
byte[] | Long variable-length character string |
BINARY | byte[] | Fixed-length binary string of length n where n is from 1 to 255 |
VARBINARY | byte[] | Variable-length binary string |
BLOB(n) (404 or 405) |
java.sql.Blob | Large object variable-length binary string |
CLOB(n) (408 or 409) |
java.sql.Clob | Large object variable-length character string |
DBCLOB(n) (412 or 413) |
java.sql.Clob | Large object variable-length double-byte character string |
DATE (384 or 385) |
java.sql.Date | 10-byte character string |
TIME (388 or 389) |
java.sql.Time | 8-byte character string |
TIMESTAMP (392 or 393) |
java.sql.Timestamp | The character string can be from 19 -
32 bytes in length depending on the number of fractional seconds specified. The fractional seconds of the TIMESTAMP data type can be optionally specified with 0-12 digits of timestamp precision. When a timestamp value is assigned to a timestamp variable with a different number of fractional seconds, the value is either truncated or padded with zeros to match the format of the variable. |
GRAPHIC(n) (468 or 469) |
java.lang.String | Fixed-length double-byte character string |
VARGRAPHIC(n) (464 or 465) |
java.lang.String | Non-null-terminated varying double-byte character string with 2-byte string length indicator |
LONGVARGRAPHIC (472 or 473) |
java.lang.String | Non-null-terminated varying double-byte character string with 2-byte string length indicator |
XML(n) (408 or 409) |
java.sql.Clob | The XML data type is represented in the same way as a CLOB data type; that is as a large object variable-length character string |
ARRAY | java.sql.Array | An array of SQL data. |
BOOLEAN (2436 or 2437) |
boolean | A one byte value that represents a truth value (that is, TRUE or FALSE). |
Note:
- Parameters of an SQL array data type are mapped to class com.ibm.db2.ARRAY.
- LONG VARCHAR, LONG VARGRAPHIC, XML, REFERENCE, UDT and ARRAY are not supported for the ARRAY data type.