4
我有一个基于日期字段的分区表。现在,我必须编写一个过程来删除所有2个月以上的分区,即test_date大于2个月。我该怎么做?丢弃2个月以上的分区
create table test_table
(
test_id number,
test_date date,
constraint pk_test primary key (test_id)
)
partition by range (test_date)
(
PARTITION pt01122012 VALUES LESS THAN (TO_DATE('01-DEC-
2012', 'DD-MON-YYYY')),
PARTITION pt01022013 VALUES LESS THAN (TO_DATE('01-FEB-
2013', 'DD-MON-YYYY')),
PARTITION pt01042013 VALUES LESS THAN (TO_DATE('01-APR-
2013', 'DD-MON-YYYY')),
PARTITION pt01062013 VALUES LESS THAN (TO_DATE('01-JUN-
2013', 'DD-MON-YYYY')),
PARTITION pt01082013 VALUES LESS THAN (TO_DATE('01-AUG-
2013', 'DD-MON-YYYY'))
);
在此先感谢...
你可以建议任何其他方式删除这种其他程序方法吗? – TomJava 2018-01-03 05:09:03
表中存在的主键会发生什么情况? – TomJava 2018-01-03 05:10:29
@TomJava我知道这是迟到,但对于其他人来说:这是手动以外的最佳方式。您将需要添加更新索引语句,以便由于分区删除而重建它。如果您有IOT分区,请使用“更新全局索引” – 2018-03-05 17:03:32