Oralce如何修改间隔分区

最近项目上碰到个问题,在初始化某张表时,按照设计要求是按年做间隔分区。但是竟然忘记加上间隔的参数

INTERVAL(NUMTOYMINTERVAL(1,'year'))
,造成没有按年创建分区。按年自动创建分区的语句如下:

CREAT TABLE tt
(  
   ID NUMBER(8),  
   dd DATE
)  
PARTITION BY RANGE(dd)  
INTERVAL(NUMTOYMINTERVAL(1,'year'))  
(  
  PARTITION P1 VALUES LESS THAN(TO_DATE('2016-01-01','YYYY-MM-DD'))  
);  
当问题发现后,表中已经有几百万条数据,必须要想办法把间隔分区的参数调整。使用如下语法:
ALTER TABLE  tt SET INTERVAL (numtoyminterval(1,'year'));
表修改成功,然后插入2017年的数据,自动创建分区成功。

select TABLE_NAME,PARTITION_NAME,TABLESPACE_NAME from user_tab_partitions where table_name='tt';





你可能感兴趣的:(开发相关,Oracle)