Oracle 11g维护分区(五)(4)

在复合范围分区表中合并分区如前面所论述的“合并范围分区”。但是,当你合并两个复合范围分区时,生成的新分区将继承子分区模版的子分区描述,前提是该模版存在。如果不存在子分区模版,那么将会创建一个上限边界是MAXVALUE的新分区。

对于间隔范围分区表,你只能合并两个相邻的间隔分区,或者时最高范围分区和第一个间隔分区。如“合并间隔分区”所述,当你在间隔哈希分区表合并分区时,转换点时会移动的。

下面的语句合并了月份间隔范围分区表orders的两个分区。该表存在一个子分区模版。

ALTER TABLE orders

MERGE PARTITIONS FOR(TO_DATE('01-MAR-2007','dd-MON-yyyy')),

FOR(TO_DATE('01-APR-2007','dd-MON-yyyy'))

INTO PARTITION p_pre_may_2007;

如果20073月和4月的分区仍然在间隔范围分区表的间隔部分,那么合并操作将会把转换点移动到200751日。 

对于分区p_pre_may_2007而言,所有子分区都将从子分区模版中继承他们的属性。新生成分区的数据由两个分区的数据组成。但是,可能存在数据库返回错误的情况。这个之所以会发生,可能是因为当同时满足下列条件时,数据可能会映射到新分区之外:

合并后子分区的一些值可能并不属于子分区模版。

子分区模版不包含一个上限边界值为MAXVALUE的子分区定义。

我们可以通过在子分区模版中指定一个上限边界值为MAXVALUE的子分区来消除这个错误条件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6003536050b81005c7f502be55dc5508.html