ORA-14118: CHECK constraint mismatch in ALTER TABLE EXCHANGE PARTITION ORACLE 报错 故障修复 远程处理
文档解释
ORA-14118: CHECK constraint mismatch in ALTER TABLE EXCHANGE PARTITION
Cause: The corresponding columns in the tables specified in the ALTER TABLE EXCHANGE PARTITION statement have CHECK constraint defined on them.
Action: Ensure that the two tables do not have CHECK constraint defined on any column
ORA-14118发生在因要求分区表和分区表的数据的约束体系不同而尝试用exchange子句来替换交换表分区表情况下。
官方解释
ORA-14118: 要求交换分区和表必须有相同的约束体系。
常见案例
ORA-14118可能会发生在您尝试在两个表之间进行交换分区,而其中一个表上有一个或多个CHECK 约束,而另一个表没有这些约束时。此错误消息表明,两个表上必须有相同的约束体系。
正常处理方法及步骤
1.检查是否存在检查约束:
SELECT constraint_name
FROM user_constraints
WHERE table_name = ‘tablename’;
2.如果表上的检查约束不兼容,可以考虑更改或删除该约束。
ALTER TABLE tbl_name DROP CONSTRAINT constraint_name;
3.如果CHEK约束必须保留,则可以尝试在要被交换的分区表上添加相应的约束条件,以便与表行完全匹配。
4.当CHECK约束仍不匹配时,请使用INSERT * SELECT来从分区表移动数据到表中。