Informix Error -9930: Byte, Text, Serial or Serial8 or Bigserial datatypes in collection types not allowed.
Cause and resolution
Byte, Text, Serial or Serial8 or Bigserial datatypes in collection types not allowed.
You cannot use TEXT, BYTE, SERIAL, or SERIAL8 or BIGSERIAL data types in the fields of a row within a collection or the elements of a collection.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-9930 fires when TEXT, BYTE, SERIAL, SERIAL8, or BIGSERIAL is used in the fields of a row within a collection, or as a collection's elements — per the official guidance.
- A row field within a collection, or a collection element, declared as TEXT/BYTE/ SERIAL/SERIAL8/BIGSERIAL, per the official guidance — the direct, only cause.
Solutions / Resolution
- Use a different data type for the collection's row fields/elements, per the official guidance's restriction.
Examples
A collection element of type TEXT
CREATE ROW TYPE my_row (id INT, data SET(TEXT NOT NULL)); -- -9930
Corrected
CREATE ROW TYPE my_row (id INT, data SET(CLOB NOT NULL));
Diagnostic Checks
- Check the collection's row field/element types, and replace any TEXT/BYTE/SERIAL/ SERIAL8/BIGSERIAL with a supported type.
Related Errors / Related Topics
- -9910 — "Byte, Text, Serial or Serial8 or Bigserial data types in collection type not allowed." The same restriction, raised in a different statement context.
A collection's row field or element was TEXT/BYTE/SERIAL/SERIAL8/BIGSERIAL, which isn't allowed — use a different type.