Informix Error -1200: Number is too large for a DECIMAL data type.
Cause and resolution
Number is too large for a DECIMAL data type.
The float DECIMAL data type accommodates numbers greater than or equal to 1.000E-130 and less than 1.000E+126 in absolute value. The precision (number of significant digits) varies from 1 to 32; however, the source of this error is not the length of the number but its magnitude.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-1200 fires when a number's magnitude exceeds what DECIMAL can represent — per the official
guidance, DECIMAL supports absolute values between 1.000E-130 and 1.000E+126, with 1 to 32
significant digits of precision; this error is specifically about the value's magnitude being
too large, not its digit count.
- A computed or literal value with an absolute magnitude greater than
1.000E+126, per the official guidance — the direct, only cause. - An arithmetic operation (multiplication, exponentiation) that overflows
DECIMAL's upper bound, even though each individual operand was within range.
Solutions / Resolution
- Review the computation or literal producing the oversized value, per the official guidance, and confirm it's actually the intended magnitude.
- If the value is genuinely correct, reconsider whether
DECIMALis the right data type for values at this scale — no rescaling ofDECIMALitself extends its1.000E+126ceiling.
Examples
An overflowing computation
DEFINE v_result DECIMAL(32);
LET v_result = 1e100 * 1e50;
-- -1200: the product (1e150) exceeds DECIMAL's 1.000E+126 magnitude limit
Diagnostic Checks
- Check the actual magnitude of the value involved against
DECIMAL's1.000E+126upper bound.
Related Errors / Related Topics
- -1201 — "Number is too small for a DECIMAL data type." The mirror-image restriction: a
value below
DECIMAL's minimum magnitude rather than above its maximum.
A value's magnitude exceeded DECIMAL's 1.000E+126 ceiling — review the computation or
literal that produced it.