在范围分区中创建动态分区

时间:2019-02-07 14:43:53

标签: sql database oracle partitioning

我有以下情况。 假设我有一个包含3个分区的表。一个是20190201,另一个是20190202,另一个是20190210。 我被要求。无论我们通过哪个日期,都应该创建自动分区。 因此,如果我使用动态sql,则可以在例如20190211的最大分区之后创建分区。但是如果我想为20190205创建分区,则会出错。 无论如何,是否存在在运行时创建分区而不会丢失数据的问题,即使存在最大分区也是如此。 我们被告知不要创建间隔分区

1 个答案:

答案 0 :(得分:0)

这很简单。

在创建表本身时,在date列上使用时间间隔分区。 您可以根据需要将分区间隔选择为小时/天/月。

因此,每当您根据日期值将新数据插入表中时,数据都会转到正确的分区或创建新的分区。 创建时在表中使用以下语法。

partition by range ( date_col )
interval ( NUMTODSINTERVAL(1,'day') )
( partition p1 values less then ( date '2016-01-01' ))