Informix Error -663
-663 You are using more than one procedure-calling syntax for
procedure procedure-name.While calling a procedure, some of the arguments were named, but others were not.
Example of error:
LET var = proc (arg1 = 10, 20, arg3 = 30); -- error
Correction:
LET var = proc (arg1 = 10, arg2 = 20, arg3 = 30); --correct LET var = proc (10,20,30);--correct
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-663 fires when a procedure call mixes named and positional arguments — per the official
guidance, some arguments were named (arg_name = value) while others weren't, and the two
calling styles can't be combined in a single call.
- A procedure call with some arguments named and others positional, per the official guidance — the direct, only cause.
- Adding a named argument for clarity to one parameter of an otherwise-positional call, without converting the rest of the call to named form too.
Solutions / Resolution
- Name all arguments, or use only positional arguments throughout the call, per the official guidance — pick one style and apply it consistently across the entire call.
Examples
The disallowed mix
EXECUTE PROCEDURE update_order(p_order_id = 42, 'shipped');
-- -663: p_order_id is named, the second argument is positional
Corrected — all named
EXECUTE PROCEDURE update_order(p_order_id = 42, p_status = 'shipped');
Or corrected — all positional
EXECUTE PROCEDURE update_order(42, 'shipped');
Diagnostic Checks
- Scan the procedure call's argument list for a mix of
name = valueand bare positional arguments, and convert the whole call to one style consistently.
Related Errors / Related Topics
No closely related error codes are cross-referenced for -663 in this set yet.
Pick one calling style (named or positional) for the entire call — the two can't be mixed within a single procedure invocation.