我想从 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 不是问题,我会创建分区 where with VALUES LESS than 100
,但是NULL
那些呢?
我正在考虑更改为按范围分区之类的东西(NVL(b,0))
,但我担心必须重新处理整个表(不可能,真实表有很多数据)。
任何想法?