ORA-14118: CHECK constraint mismatch in ALTER TABLE EXCHANGE PARTITION

文档解释

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来从分区表移动数据到表中。

你可能感兴趣的