oracle范围分区多列和分区模板

Oracle的分区表默认不允许更新分区字段,但通过启用row movement属性可以实现。范围分区基于values less than规则,而范围-列表分区创建有两种方式。带有子分区模板的分区表在添加和更改分区时会自动处理子分区,而无模板的则需手动操作。
摘要由CSDN通过智能技术生成

分区表分区字段的update操作

默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改。但是可以通过打开表的row movement属性来允许对分区字段的update操作。

打开row movement属性
SQL> alter table test_part enable row movement;

执行上面语句后,再对分区表分区字段进行update操作即可成功



说明:范围分区 range(A,B)的分区法则,范围分区都是 values less than(A,B)的,通常情况下以A为准,如果小于A的不用考虑B,直接插进去,如果等于A那么考虑B,要是满足B的话也插进去。


范围-列表分区有两种创立方式,先说说没有模板的创建方式

    create table MobileMessage   
    (   
     ACCT_MONTH VARCHAR2(6), -- 帐期 格式:年月 YYYYMM   
     AREA_NO VARCHAR2(10), -- 地域号码    
     DAY_ID VARCHAR2(2), -- 本月中的第几天 格式 DD   
     SUBSCRBID VARCHAR2(20), -- 用户标识    
     SVCNUM VARCHAR2(30) -- 手机号码   
    )   
    partition by range(ACCT_MONTH,AREA_NO) subpartition by list(DAY_ID)   
    (   
      partition p1 values less than('200705','012')   
      (   
        subpartition shangxun1 values('01','02','03','04','05','06','07','08','09','10'),   
        subpartition zhongxun1 values('11','12','13','14','15','16','17','18','19','20'),   
        subpartition xiaxun1 values('21','22','23','24','25','26','27','28','29','30','31')   
      ),   
      partition p2 values less than('200709','014')   
      (   
        subpartition shangxun2 values('01','02','03','04','05','06','07','08','09','10'),   
        subpartition zhongxun2 values('11','12','13','14','15','16','17','18','19','20'),   
        subpartition xiaxun2 values('21','22','
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值