背景:数据源切换时不清楚NULL值对分区表的影响,切换后导致分区表数据无法更新、所有索引不可用。
具体错误如下:
阶段1:ORA-14400: inserted partition key does not map to any partition
阶段2:ORA-00060: deadlock detected while waiting for resource
阶段3:ORA-14406: updated partition key is beyond highest legal partition key
阶段4:ORA-01502: index 'xxx' or partition of such index is in unusable state
此时分区表上的所有索引都不可用。
解决方案索引重建:
alter index xxx.idx_1 rebuild;
原因:分区表如果没有定义这个分区,那么NULL值在插入的时候会报ORA-14400(插入的分区关键字未映射到任何分区 )错误 ,oracle认为NULL值是超出分区范围的值。最重要的是是迁移后去掉了原有的NULL值处理逻辑。