Informix Error -1216: Illegal exponent.
Cause and resolution
Illegal exponent.
The exponent of a numeric literal cannot exceed 32,767. In fact, none of the available data types can accommodate an exponent that large. However, the exponent itself triggers this message before checking the destination of the number. Check the statement for missing or misplaced punctuation that might have caused two numbers to run together.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-1216 fires when a numeric literal's exponent exceeds 32,767 — per the official guidance, no available data type could hold an exponent that large anyway, but the check on the exponent itself fires before the destination type is even considered. The official guidance notes this most often results from missing or misplaced punctuation causing two separate numbers to run together into one malformed literal.
- Missing or misplaced punctuation causing two numbers to run together, per the official guidance's specifically named common cause — the combined digits are parsed as a single numeric literal with an absurdly large exponent.
- A genuinely malformed numeric literal with an exponent typo, less commonly.
Solutions / Resolution
- Check the statement for missing or misplaced punctuation that might have caused two numbers to run together, per the official guidance — this is the specifically named, most-likely fix.
- Correct the exponent value if it's a genuine (if mistaken) single literal.
Examples
Two numbers running together from a missing comma
SELECT * FROM orders WHERE order_id IN (100e200 300);
-- -1216: missing comma between 100e200 and 300 combined them into one
-- malformed literal with an illegal exponent
Corrected
SELECT * FROM orders WHERE order_id IN (100, 200, 300);
Diagnostic Checks
- Re-read the statement for a missing or misplaced comma/operator between what should be two separate numeric literals, per the official guidance's specific example of this failure mode.
Related Errors / Related Topics
No closely related error codes are cross-referenced for -1216 in this set yet.
Usually a punctuation slip merging two numbers into one malformed literal with an oversized exponent — check for a missing comma or operator first.