ORA-14757: Table is already a range partitioned table ORACLE 报错 故障修复 远程处理
文档解释
ORA-14757: Table is already a range partitioned table
Cause: SET INTERVAL () is used to convert an interval partitioned table to a range partitioned table. It is not legal on a range partitioned table
Action: Use SET INTERVAL () only on an interval partitioned table.
错误ORA-14757表示针对指定的表已定义了范围分区,不能再次定义范围分区。这是一个简单的SQL执行错误。
官方解释
常见案例
1. 尝试重新对具有范围分区的表定义另一个范围分区:
SQL> alter table tbl_test add partition p3 values less than (7)
ORA-14757: 表”TBL_TEST”已作为范围分区表
2. 尝试使用已存在的表表关键字定义范围分区的表:
SQL> create table tbl_test ( id number )
partition by range (id)
(partition p1 values less than (3),
partition p2 values less than (7));
ORA-14757: 表”TBL_TEST”已作为范围分区表
正常处理方法及步骤
– 避免定义重复的范围分区;
– 避免使用具有现有范围分区的表定义新的范围分区;
– 可以使用EXCHANGE子句将表分区和表分区之间进行交换;
– 使用ALTER TABLE SPLIT子句分裂或合并表的分区;
– 使用ALTER TABLE COALESCE子句合并当前表分区;
– 使用ALTER TABLE DROP分区子句删除表的分区;
– 使用ALTER TABLE MOVE PARTITION子句移动表的分区;
– 使用ALTER TABLE TRUNCATE子句删除表的所有数据;
– 使用ALTER TABLE EXCHANGE SUBSET子句执行不同部件分区间的数据交换。