Informix Error -429
-429 Indicator variables should be 2-byte integers.
This statement names as an indicator variable, a host variable that was not declared as a small integer. The value returned to an indicator variable is a small integer value. Review the statement, especially the use of host variables as indicator variables. Make sure the names of indicator variables are spelled correctly and that they are properly declared. In a 4GL program, this error should not occur. If the error recurs, note all circumstances and contact IBM Informix Technical Support.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-429 is an embedded-SQL/ESQL-C client-programming error: an indicator variable (used alongside a
host variable to signal whether the corresponding value is NULL) must be declared as a 2-byte
(short/smallint-equivalent) integer, and this one wasn't.
- An indicator variable declared with the wrong C type — e.g. a 4-byte
intor a different type entirely, instead of a 2-byteshort. - A misspelled variable name in the
:host_var:indicator_varsyntax, accidentally referencing a different, incorrectly-typed variable. - Copy-pasted embedded SQL code where the indicator variable declaration wasn't adjusted for the new context.
Solutions / Resolution
- Review the statement for correct indicator variable usage, per the official guidance,
confirming the variable name is spelled correctly and declared as a 2-byte integer (
shortin C). - If using a higher-level language (4GL and similar) where this should rarely occur, treat its appearance as a signal worth investigating in the generated code or runtime, per the official guidance.
Examples
Declaring an indicator variable with the correct type
short ind_status; /* correctly a 2-byte integer */
EXEC SQL SELECT status INTO :status_var:ind_status FROM orders WHERE order_id = 1001;
The disallowed incorrect type
int ind_status; /* wrong: 4-byte int, not 2-byte short */
EXEC SQL SELECT status INTO :status_var:ind_status FROM orders WHERE order_id = 1001;
/* -429 */
Diagnostic Checks
- Check the declared C type of every indicator variable referenced in the failing
statement — confirm it's a 2-byte integer (
short). - Double-check spelling of the indicator variable name in the
:host_var:indicator_varsyntax.
Related Errors / Related Topics
- -402 — "Address of a host variable is NULL." A related embedded-SQL/ESQL-C host-variable structural error, though about pointer validity rather than indicator-variable type.
- -415 — "Data conversion error." A related value-conversion error, in a different, more general context than this indicator-variable-specific type requirement.
Indicator variables must be declared as 2-byte integers (short in C) — this should rarely occur
in 4GL, so its appearance in that context is worth investigating further.