Informix Error -836: Insert statement has no values clause.
Cause and resolution
Insert statement has no values clause.
The INSERT statement that was entered as part of this LOAD statement requires a VALUES clause. Revise the statement to include one.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-836 fires when the INSERT statement supplied as part of a LOAD statement has no VALUES
clause — per the official guidance, this is the current, documented form of the same underlying
condition -824 describes as obsolete.
- An
INSERTclause withinLOADmissing itsVALUESclause entirely, per the official guidance — the direct, only cause. - A
LOADstatement'sINSERTclause copy-pasted incompletely, dropping theVALUESportion during editing.
Solutions / Resolution
- Revise the statement to include a
VALUESclause, per the official guidance.
Examples
The disallowed attempt
LOAD FROM 'orders_import.unl' INSERT INTO orders;
-- if this specific server version requires an explicit VALUES clause here:
-- -836: no VALUES clause supplied
Corrected
LOAD FROM 'orders_import.unl' INSERT INTO orders (order_id, status, total);
The LOAD statement's pseudo-INSERT clause takes a column list, not a VALUES clause; if
-836's wording of the official message suggests otherwise, that reflects older/embedded-SQL
LOAD usage rather than the current DB-Access LOAD syntax.
Diagnostic Checks
- Check the
INSERTclause within theLOADstatement for aVALUESclause, and add one matching the table's column count.
Related Errors / Related Topics
- -824 — "Missing values clause on insert statement." The obsolete predecessor to this same condition — -824's own official text points here for the current documented form.
The current, documented form of -824's condition — add a VALUES clause to the LOAD
statement's INSERT clause.