create table tab (
id int,
yyyymm varchar2(6)
)
PARTITION BY RANGE (yyyymm)
(
partition p201304 VALUES LESS THAN ('201305'),
partition p201305 VALUES LESS THAN ('201306'),
partition p201306 VALUES LESS THAN ('201307')
);
alter table tab drop partition for ('201309');
-- ORA-14702: The partition number is invalid or out-of-range
alter table tab drop partition for ('201305');
-- Table TAB altered. p201305 was dropped
alter table tab drop partition for ('201001');
-- Table TAB altered. partition P201304 was dropped
1条答案
按热度按时间k10s72fa1#
你必须意识到Oracle range 分区是在条件
less than
上定义的,而不是在一个固定的模式上定义的。* 数据月份 *。所以第一个分区 * 没有下限 *,因此您可以观察到下面示例中所示的预期行为(假设您的分区模式,但不建议以这种方式进行-〉使用
DATE
列和 interval 分区将是首选)