【发布时间】:2013-09-17 07:50:18
【问题描述】:
我想从 Range Partition 移动到 Range-Interval,但我当前的表在 MAXVALUE 上有一个分区,并且用于分区的列允许空值:(
例如:假设我们有:
create table a (b number)
partition by range (b) (
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (50),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
然后我们填充:
INSERT INTO a(b) VALUES (1);
INSERT INTO a(b) VALUES (11);
INSERT INTO a(b) VALUES (51);
INSERT INTO a(b) VALUES (null);
为了能够移动到区间,我们需要删除带有MAXVALUE的分区,因此,其他值应该移动到新的分区。
51不是问题,我会用VALUES LESS than 100创建分区,但是NULL呢?
我正在考虑更改为按范围分区(NVL(b,0)) 之类的东西,但我担心必须重新处理整个表(不可能,真实表有很多数据)。
有什么想法吗?
【问题讨论】:
标签: oracle oracle11g data-partitioning