Informix Error -9931: Byte and Text datatypes in row and collection types not allowed.
Cause and resolution
Byte and Text datatypes in row and collection types not allowed.
You requested the construction of an object that contains a BYTE or TEXT data type. This is only supported for column types of a table or CREATE ROW TYPE statement. All other references to a named row type, unnamed row type, or collection type cannot contain BYTE or TEXT data types.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-9931 fires when a BYTE or TEXT type is used somewhere other than a table column type or a CREATE ROW TYPE statement's own field — per the official guidance.
- BYTE/TEXT used in a named row type, unnamed row type, or collection type reference other than a table column or CREATE ROW TYPE field, per the official guidance — the direct, only cause; BYTE/TEXT support is limited to table columns and CREATE ROW TYPE fields.
Solutions / Resolution
- Avoid using BYTE/TEXT in row/collection type constructions outside a table column or CREATE ROW TYPE statement, per the official guidance.
Examples
N/A
No specific triggering statement is documented; the specific construction varies.
Diagnostic Checks
- Check where the BYTE/TEXT type is referenced, and confirm it's a table column or a CREATE ROW TYPE field — the only supported contexts.
Related Errors / Related Topics
- -9910 — "Byte, Text, Serial or Serial8 or Bigserial data types in collection type not allowed." A related BYTE/TEXT-in-complex-type restriction, specific to collection elements.
- -9930 — "Byte, Text, Serial or Serial8 or Bigserial datatypes in collection types not allowed." The same restriction, raised in a different statement context.
BYTE/TEXT was used in a row/collection type construction outside a supported context — use it only as a table column or CREATE ROW TYPE field.