General Table Restrictions On Using UDT Columns
The general restrictions on the use of UDT columns in tables are the following.
This restriction does not apply to PRIMARY KEY and UNIQUE constraints, which can be specified for non‑LOB UDT columns.
With the exception of unpartitioned NoPI tables (see “Unpartitioned NoPI Tables” on page 575) and column‑partitioned tables (see “Column‑Partitioned Tables” on page 577), each table is required to have a primary index.
If you attempt to create such a table, the request aborts and the system returns an error to the requestor because an ARRAY, VARRAY, Geospatial, or Period column cannot be the primary index for a table, whether by default or by design.
Because ARRAY, VARRAY, Geospatial, and Period data types are implemented internally as UDTs, you do not have to define ordering and transform definitions for them.
An attempt to create a table containing an ARRAY, VARRAY, Geospatial, or Period column that lacks an ordering definition, a transform definition, or both, returns an error to the requestor.
Each UDT column declared consumes approximately 80 bytes of table header space. Depending on other options you declare for a table, including multi-value and algorithmic compression, partitioned primary indexes, secondary indexes, and so on, the table header size limit can eventually be exceeded, aborting the request and returning an error message to the requestor.
In the absence of other feature specifications, the limit on the number of UDT, ARRAY, VARRAY, Geospatial, and Period columns per table is approximately 1,600 columns. This assumes that your system permits fat table headers. See Database Design for details about table headers.