The following table indicates the alignment requirements for each of the non-true integer numeric data types and their respective sizes on platforms that use packed64 and aligned row storage formats:
| Data Type | Range of n | Packed64 Size (bytes) | Aligned Row Size (bytes) | Allocated Size for Aligned Row Format (bytes) |
|---|---|---|---|---|
| DECIMAL(n) NUMERIC(n) |
1 ≤ n ≤ 2 | 1 | 1 | 1 |
| 3 ≤ n ≤ 4 | 2 | 2 | 2 | |
| 5 ≤ n ≤ 9 | 4 | 4 | 4 | |
| 10 ≤ n ≤ 18 | 8 | 8 | 8 | |
| 19 ≤ n ≤ 38 | 4 Alignment is 4 because decimal numbers in this range are stored internally as four 32-bit integers on all systems. |
16 | ||
| NUMBER(n) NUMBER(n,s) |
0 ≤ n
≤ 38 and 0 |
0 - 18 | 0 - 18 | 0 - 18 |
| FLOAT REAL DOUBLE PRECISION |
Not applicable | 8 | 8 | 8 |
| NUMBER NUMBER(*) NUMBER(*,s) |
Not applicable | 0 - 18 | 0 - 18 | 0 - 18 |
| FLOAT/REAL/DOUBLE PRECISION: 8 Bytes (All Platforms) | ||
|---|---|---|
| Bit 0 | Bits 1 - 10 | Bits 11 - 63 |
| Exponent | Mantissa | |
| Sign | 2 * 10-307 — 2 * 10308 | |
| NUMBER: 0- 18 Bytes (All Platforms) | ||
|---|---|---|
| Byte 0 | Bytes 1 - 17 | |
| Exponent | Mantissa | |
| DECIMAL/NUMERIC [(n[,m])]: 1, 2, 4, 8, or 16 Bytes (All Platforms) | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 - 2 digits | Not used | ||||||||||||||
| 3 - 4 digits | Not used | ||||||||||||||
| 5 - 9 digits | Not used | ||||||||||||||
| 10 - 18 digits | Not used | ||||||||||||||
| 19-38 digits | |||||||||||||||
| Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Byte 11 | Byte 12 | Byte 13 | Byte 14 | Byte 15 | Byte 16 |
| -99 — 99 | Not used | ||||||||||||||
| -9999 — 9999 | Not used | ||||||||||||||
| -999999999 — 999999999 | Not used | ||||||||||||||
| -999999999999999999 — 999999999999999999 | Not used | ||||||||||||||
| -99999999999999999999999999999999999999 — 99999999999999999999999999999999999999 | |||||||||||||||