Informix Error -16367
-16367 Need to specify a specific record member or array element.
You cannot use the name of an array as an argument of a CALL command. You cannot use the unqualified name of an array or record in an expression or as the object of a breakpoint or tracepoint. In all these cases, you must use a subscript in brackets to specify a particular array element, or the full name of a member of a record.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-16367 fires when an unqualified array or record name is used somewhere requiring a specific
value — per the official guidance: as a CALL argument, in an expression, or as a
breakpoint/tracepoint object.
- An unqualified array/record name used as a
CALLargument, in an expression, or as a breakpoint/tracepoint object, per the official guidance — the direct, only cause.
Solutions / Resolution
- Use a bracket subscript for a specific array element, or the full member name for a record, per the official guidance.
Examples
An unqualified array used as a CALL argument
> CALL myfunc(myarr)
Corrected
> CALL myfunc(myarr[1])
Diagnostic Checks
- Check for an unqualified array/record name, and qualify it down to a specific element or member.
Related Errors / Related Topics
- -16359 — "Cannot assign values to records; Assignments must be to record members." The
same qualification requirement, specific to
LET-command record targets. - -16360 — "Cannot assign values to arrays; Assignments must be to array elements." The
same qualification requirement, specific to
LET-command array targets.
An unqualified array/record name was used where a specific element/member is required — qualify it.