文档解释
ORA-39803: Data saves are not allowed on tables with partitioning referential constraints.
Cause: Data saves (and the sqlldr ROWS parameter) are not allowed when loading both the parent and child tables of a partitioning referential constraint.
Action: Do not attempt data saves when loading both the parent and child tables of a partitioning referential constraint.
ORA-39803 意味着,在具有分区引用约束的表上保存数据是不允许的。
官方解释
ORA-39803表达的是当在分区表上进行数据更改时引发的错误代码,其原因是因为使用了可变分区约束(VPC)。可变分区约束(VPC)是表示所有分区拥有一个唯一的约束,并且所有插入的行根据该约束被分区的一种约束。
常见案例
案例1:当集成Oracle表与外部表时,其中一张表使用VPC,运行DML语句时会报ORA-39803的错误
一般处理方法及步骤
1. 首先检查VPC约束是否存在,如果存在则查看约束字段是否已经给出值。
2. 如果约束字段值没有设置或者字段已经设置成其它值,那么可以直接更改VPC的限制条件,使其符合DML操作需求。
3. 若需要在分区表上更改数据,可以将其转换为非分区表,这样便可以使用常规的DML语句更新数据,此时不需要使用VPC约束。
4. 在更改完成之后,可以重新添加VPC约束来恢复原有分区表架构。