更改现有分区的范围

时间:2018-10-18 09:25:57

标签: oracle oracle11g database-partitioning

我有一个带有两个分区的表:

create table MY
(
  id           NUMBER not null,
  dat          DATE
)
partition by range (dat)
(
  partition PART_ARCHIVE values less than (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) 
  tablespace ARCHIVE,
  partition PART_ACTUAL values less than (MAXVALUE) tablespace ACTUAL

);

是否可以在不重新创建表的情况下更改PART_ARCHIVE分区日期间隔?

我需要设置:

 partition PART_ARCHIVE values less than (TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) 

1 个答案:

答案 0 :(得分:2)

我不知道您是否可以在一个命令中完成此操作,但是该命令应该可以工作:

ALTER TABLE MY SPLIT PARTITION PART_ACTUAL INTO
  (PARTITION PART_2017 VALUES LESS THAN (DATE '2017-01-01'),
   PARTITION PART_ACTUAL);

ALTER TABLE MY MERGE PARTITIONS PART_2017, PART_ARCHIVE INTO PART_ARCHIVE;