Informix Error -4410: There is a numeric constant in the previous line that is too large or too small.
Cause and resolution
There is a numeric constant in the previous line that is too large or too small.
A numeric constant in this line cannot be processed. Check the digits and punctuation of all literal numbers; for example, make sure that you have not typed a letter for a digit. No number can have more than 50 digits. Depending on the context, numbers might be restricted to one of three ranges.
SMALLINT:
absolute value not exceeding 32,767
INTEGER:
absolute value not exceeding 2,147,483,647
DECIMAL:
absolute value from 10 to the 130th power through 10 to the 124th power
BIGINT/INT8/SERIAL8 :
absolute value from -9,223,372,036,854,775,807 to +9,223,372,036,854,775,807
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4410 fires when a numeric literal can't be processed — per the official guidance, no number
can have more than 50 digits, and depending on context, numbers may be further restricted to
SMALLINT (absolute value up to 32,767), INTEGER (absolute value up to 2,147,483,647), or a
third named range.
- A numeric literal exceeding 50 digits, per the official guidance — the first named cause.
- A numeric literal exceeding the range of its context's target type (
SMALLINT,INTEGER, or the type-specific third range), per the official guidance — the second named cause. - A typo, such as a letter typed for a digit, per the official guidance — a specifically named contributing cause.
Solutions / Resolution
- Check the digits and punctuation of all literal numbers, per the official guidance — including for a letter mistakenly typed as a digit.
- Confirm the literal fits within its context's target type range.
Examples
A literal exceeding SMALLINT's range
DEFINE ix SMALLINT
LET ix = 40000
-- -4410: 40000 exceeds SMALLINT's maximum of 32,767
Corrected
DEFINE ix INTEGER
LET ix = 40000
Diagnostic Checks
- Check every numeric literal's digit count (max 50) and its range against the target type's limits.
Related Errors / Related Topics
No closely related error codes are cross-referenced for -4410 in this set yet.
A numeric literal is too large, too small, or malformed — check its digits and its range against the target type's limits.