交换分区时报错:ORA-14098

在尝试交换分区表与普通表时遇到ORA-14098错误,问题源于分区表使用了全局索引,而交换表的索引类型不匹配。解决方法是确保索引类型一致。
摘要由CSDN通过智能技术生成

前两天把一个修改了一个分区表的索引后,执行job频频报错:
ORA-14098: index mismatch for tables in ALTER TABLE EXCHANGE PARTITION
这个错误是在分区表与一个普通表交换时发生的,检查发现,索引列是一致的,不知为何报错。

查阅相关资料后发现是因为分区表是全局索引,与用来交换的表的索引类型不一致造成的。下面简单重现错误:


1、创建表和索引
SQL> create table c1 (a number,b number)
2 partition by list(b)
3 (partition p1 values(1),
4 partition p2 values(2),
5 partition pd values(default))
6 ;

Table created

SQL> create table c2 as select * from c1;

Table created

SQL> create index idx_c1_a on c1(a) nologging;

Index created

SQL> create index idx_c2_a on c2(a);

Index created
表结构相同,索引列相同。

2、交换分区
SQL> alter table c1 exchange partition p1 with table c2 INCLUDING INDEXES WITHOUT VALIDATION;

alter table c1 exchange partition p1 with table c2 INCL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值