11g普通range分区和interval分区转化


普通range分区和interval分区转化

---------------------------------------

--创建测试表,表为普通range分区
drop table an_test;

create table an_test(
day DATE
)
partition by range(day) (
partition p1 values less than(to_date('2013-01-01','yyyy-mm-dd'))
);


--将表转化为interval分区表
ALTER TABLE an_test SET INTERVAL (numtoyminterval(1,'year'));

--插入测试数据,并检查数据
SQL> insert into an_test select sysdate+365 from dual;

1 row created.

SQL> commit;

Commit complete.

SQL> select * from an_test;

DAY
---------
24-OCT-14

--查看分区,分区sys_p61就是自动创建的分区
SQL> select partition_name from dba_tab_partitions where table_name='AN_TEST';

PARTITION_NAME
------------------------------
P1
SYS_P61


----------------------


--反向操作,即将interval分区表转化为普通range分区

ALTER TABLE an_test SET INTERVAL ();

Table altered.

--手动减价分区p2验证
SQL> alter table an_test add partition p2  values less than (to_date('2016-01-01','yyyy-mm-dd'));

Table altered.

SQL> select partition_name from dba_tab_partitions where table_name='AN_TEST';

PARTITION_NAME
------------------------------
P1
P2
SYS_P61

另:反向操作后可以出现在数据中断、补建分区或者调整分区步长的情景
使用类似ALTER TABLE an_test SET INTERVAL (numtoyminterval(1,'year'));命令调整interval步长后,后面的分区按照新的interval生成

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-774949/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13177610/viewspace-774949/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值