Informix Error -783
-783 Cannot attach because of incompatible schema.
Incompatible table schemas do not allow you to perform an attach. When you perform an attach, the table schemas must be identical and tables must be compatiable from LBAC perspective. Use the ALTER TABLE statement to make the schemas identical, the surviving table and consumed table to be protected by the same security policy, and make the protected columns to be protected by the same set of security labels. Then perform an ALTER FRAGMENT...ATTACH operation.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-783 fires when ALTER FRAGMENT ... ATTACH names a table whose schema doesn't match the
target — per the official guidance, the two tables' schemas must be identical, and if Label-Based
Access Control (LBAC) is in use, they must also be compatible from an LBAC perspective: protected
by the same security policy, with protected columns covered by the same set of security labels.
- A column-list, type, or ordering mismatch between the table being attached and the target table — per the official guidance, schemas must be identical.
- The two tables protected by different LBAC security policies, per the official guidance — even with matching ordinary schemas, this alone blocks the attach.
- Protected columns covered by different sets of security labels between the two tables, per the official guidance — a more granular LBAC mismatch than differing policies entirely.
Solutions / Resolution
- Use
ALTER TABLEto make the schemas identical, per the official guidance, before retrying the attach. - Ensure both tables are protected by the same security policy, per the official guidance, if LBAC is in use.
- Ensure protected columns are covered by the same set of security labels in both tables, per the official guidance.
- Then retry
ALTER FRAGMENT ... ATTACH, per the official guidance, once schema and LBAC compatibility are both confirmed.
Examples
Comparing schemas before attaching
SELECT colname, coltype FROM syscolumns
WHERE tabid = (SELECT tabid FROM systables WHERE tabname = 'orders')
ORDER BY colno;
SELECT colname, coltype FROM syscolumns
WHERE tabid = (SELECT tabid FROM systables WHERE tabname = 'orders_2025')
ORDER BY colno;
Compare the two column lists directly for any mismatch before attempting the attach.
Diagnostic Checks
- Compare both tables' column lists (name, type, order) via
syscolumns. - If LBAC is in use, compare both tables' security policy and column-level security labels.
Related Errors / Related Topics
- -779 — "Duplicate table name in the alter fragment specification." A related
ATTACHrestriction, about the attach list itself rather than schema compatibility. - -782 — "Attached table is fragmented." A related
ATTACHrestriction, about the attached table's own fragmentation status.
Compare both tables' column lists and, if LBAC is in use, their security policy/labels — both must match exactly before an attach succeeds.