Informix Error -4369: The symbol variable-name does not represent a defined variable.
Cause and resolution
The symbol variable-name does not represent a defined variable.
The name shown appears where a variable would be expected, but it does not match any variable name in a DEFINE statement that applies to this context. Check the spelling of the name. If it is the name you intended, look back and find out why it has not yet been defined. Possibly the GLOBALS statement has been omitted from this source module, or it names an incorrect file. Possibly this code has been copied from another module or another function, but the DEFINE statement was not copied also.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4369 fires when a name appears where a variable is expected but matches no DEFINE statement
in scope — per the official guidance, common causes include an omitted or incorrectly-named
GLOBALS statement, or code copied from another module/function without also copying its
DEFINE statement.
- A missing or misspelled
GLOBALSstatement, per the official guidance — the first named cause. - Code copied from elsewhere without also copying its
DEFINEstatement, per the official guidance — the second named cause.
Solutions / Resolution
- Check the spelling of the name, per the official guidance.
- Look back to find out why it hasn't been defined, per the official guidance — checking
the
GLOBALSstatement, and whether aDEFINEneeds to be copied along with the code that uses it.
Examples
Code copied without its DEFINE
FUNCTION process()
LET total = qty * price
-- -4369: qty/price/total were never DEFINEd in this function
END FUNCTION
Corrected
FUNCTION process()
DEFINE qty, price, total DECIMAL
LET total = qty * price
END FUNCTION
Diagnostic Checks
- Check the name's spelling, the
GLOBALSstatement's presence and correctness, and whether aDEFINEneeds to be copied alongside code reused from elsewhere.
Related Errors / Related Topics
No closely related error codes are cross-referenced for -4369 in this set yet.
A name is used as a variable but was never DEFINEd — check spelling, GLOBALS, and whether
a DEFINE was left behind when code was copied.