Oralce如何修改间隔分区

本文介绍了一种在Oracle数据库中调整已存在表的间隔分区的方法。通过ALTER TABLE语句成功地为一张包含大量数据的表添加了按年自动创建分区的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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';





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值