Data type assignments and comparison, sorting, and ordering

The following table displays valid assignments between data types in Derby. A "Y" indicates that the assignment is valid.

Table 1. Assignments allowed by Derby
Types

B
O
O
L
E
A
N

S
M
A
L
L
I
N
T

I
N
T
E
G
E
R

B
I
G
I
N
T

D
E
C
I
M
A
L

R
E
A
L

D
O
U
B
L
E

F
L
O
A
T

C
H
A
R

V
A
R
C
H
A
R

L
O
N
G

V
A
R
C
H
A
R

C
H
A
R

F
O
R

B
I
T

D
A
T
A

V
A
R
C
H
A
R

F
O
R

B
I
T

D
A
T
A

L
O
N
G

V
A
R
C
H
A
R

F
O
R

B
I
T

D
A
T
A

C
L
O
B

B
L
O
B

D
A
T
E

T
I
M
E

T
I
M
E
S
T
A
M
P

X
M
L

U
s
e
r
-
d
e
f
i
n
e
d

t
y
p
e

BOOLEAN Y - - - - - - - - - - - - - - - - - - - -
SMALLINT - Y Y Y Y Y Y Y - - - - - - - - - - - - -
INTEGER - Y Y Y Y Y Y Y - - - - - - - - - - - - -
BIGINT - Y Y Y Y Y Y Y - - - - - - - - - - - - -
DECIMAL - Y Y Y Y Y Y Y - - - - - - - - - - - - -
REAL - Y Y Y Y Y Y Y - - - - - - - - - - - - -
DOUBLE - Y Y Y Y Y Y Y - - - - - - - - - - - - -
FLOAT - Y Y Y Y Y Y Y - - - - - - - - - - - - -
CHAR - - - - - - - - Y Y Y - - - Y - Y Y Y - -
VARCHAR - - - - - - - - Y Y Y - - - Y - Y Y Y - -
LONG VARCHAR - - - - - - - - Y Y Y - - - Y - - - - - -
CHAR FOR BIT DATA - - - - - - - - - - - Y Y Y - - - - - - -
VARCHAR FOR BIT DATA - - - - - - - - - - - Y Y Y - - - - - - -
LONG VARCHAR FOR BIT DATA - - - - - - - - - - - Y Y Y - - - - - - -
CLOB - - - - - - - - Y Y Y - - - Y - - - - - -
BLOB - - - - - - - - - - - - - - - Y - - - - -
DATE - - - - - - - - Y Y - - - - - - Y - - - -
TIME - - - - - - - - Y Y - - - - - - - Y - - -
TIMESTAMP - - - - - - - - Y Y - - - - - - - - Y - -
XML - - - - - - - - - - - - - - - - - - - Y -
User-defined type - - - - - - - - - - - - - - - - - - - - Y

A value of a user-defined type can be assigned to a value of any supertype of that user-defined type. However, no explicit casts of user-defined types are allowed.

The following table displays valid comparisons between data types in Derby. A "Y" indicates that the comparison is allowed.

Table 2. Comparisons allowed by Derby
Types

B
O
O
L
E
A
N

S
M
A
L
L
I
N
T

I
N
T
E
G
E
R

B
I
G
I
N
T

D
E
C
I
M
A
L

R
E
A
L

D
O
U
B
L
E

F
L
O
A
T

C
H
A
R

V
A
R
C
H
A
R

L
O
N
G

V
A
R
C
H
A
R

C
H
A
R

F
O
R

B
I
T

D
A
T
A

V
A
R
C
H
A
R

F
O
R

B
I
T

D
A
T
A

L
O
N
G

V
A
R
C
H
A
R

F
O
R

B
I
T

D
A
T
A

C
L
O
B

B
L
O
B

D
A
T
E

T
I
M
E

T
I
M
E
S
T
A
M
P

X
M
L

U
s
e
r
-
d
e
f
i
n
e
d

t
y
p
e

BOOLEAN Y - - - - - - - - - - - - - - - - - - - -
SMALLINT - Y Y Y Y Y Y Y - - - - - - - - - - - - -
INTEGER - Y Y Y Y Y Y Y - - - - - - - - - - - - -
BIGINT - Y Y Y Y Y Y Y - - - - - - - - - - - - -
DECIMAL - Y Y Y Y Y Y Y - - - - - - - - - - - - -
REAL - Y Y Y Y Y Y Y - - - - - - - - - - - - -
DOUBLE - Y Y Y Y Y Y Y - - - - - - - - - - - - -
FLOAT - Y Y Y Y Y Y Y - - - - - - - - - - - - -
CHAR - - - - - - - - Y Y - - - - - - Y Y Y - -
VARCHAR - - - - - - - - Y Y - - - - - - Y Y Y - -
LONG VARCHAR - - - - - - - - - - - - - - - - - - - - -
CHAR FOR BIT DATA - - - - - - - - - - - Y Y - - - - - - - -
VARCHAR FOR BIT DATA - - - - - - - - - - - Y Y - - - - - - - -
LONG VARCHAR FOR BIT DATA - - - - - - - - - - - - - - - - - - - - -
CLOB - - - - - - - - - - - - - - - - - - - - -
BLOB - - - - - - - - - - - - - - - - - - - - -
DATE - - - - - - - - Y Y - - - - - - Y - - - -
TIME - - - - - - - - Y Y - - - - - - - Y - - -
TIMESTAMP - - - - - - - - Y Y - - - - - - - - Y - -
XML - - - - - - - - - - - - - - - - - - - - -
User-defined type - - - - - - - - - - - - - - - - - - - - -