ORA-14757: Table is already a range partitioned table

文档解释

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子句执行不同部件分区间的数据交换。

你可能感兴趣的