Informix Error -643
-643 Volume must be a number.
The volume argument in the RESERVE or RELEASE statements must be INTEGER or SMALLINT.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-643 fires when the volume argument in a RESERVE/RELEASE statement isn't an INTEGER/
SMALLINT — per the official guidance, the volume argument specifically must be one of these two
numeric types (unlike the family name argument, which must be a character string per -642).
- A non-numeric value (or a quoted string) passed as the volume argument, per the official guidance — mistaking the volume's type requirement for the family name's (character-string) requirement.
- A host/procedural variable of the wrong type passed for the volume argument, similar in nature to -642's variable-type issue but for the opposite (numeric, not string) requirement.
Solutions / Resolution
- Supply an
INTEGER/SMALLINTvalue for the volume argument, per the official guidance. - Confirm a host/procedural variable used for the volume argument is numerically typed
(
INTEGER/SMALLINT), if a variable was used instead of a literal. - Don't quote the volume argument — unlike the family name, it's a number, not a character-string literal.
Examples
The disallowed attempt
RESERVE family 'optical_family1' volume '3';
-- -643: volume must be INTEGER/SMALLINT, not a quoted string
Corrected
RESERVE family 'optical_family1' volume 3;
Diagnostic Checks
- Check the volume argument's type — it must be
INTEGER/SMALLINT, not a character string, the opposite requirement from the family-name argument.
Related Errors / Related Topics
- -641 — "Cannot reserve/release family on non-optical media." A related
RESERVE/RELEASEerror, about what the family name refers to. - -642 — "Family name must be a character string." The mirror-image type requirement, for the family-name argument rather than the volume argument.
The opposite type requirement from -642 — volume must be numeric, not a quoted string.