oracle 分区 默认分区,Oracle 分区表分配分区

情况一:没有指定maxvalue

alter table EQRECIPEITEMHISTORY_20171123 add partition p_201805 values less than (to_date('2018/06/01 00:00:00','yyyy/mm/dd hh24:mi:ss'));

情况二:指定maxvalue

alter table EQRECIPEITEMHISTORY_20171123 split partition p_max at (to_date('2018/06/01 00:00:00','yyyy/mm/dd hh24:mi:ss')) into (partition p_201805,partition p_max);

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

更新查询 分区表

alter table EQRECIPEITEMHISTORY_20171123 enable row movement;

UPDATE EQRECIPEITEMHISTORY_20171123

SET inserttime = TO_DATE ('2018/07/22 11:22:11', 'yyyy/mm/dd hh24:mi:ss')

where item='Init_Z';

alter table EQRECIPEITEMHISTORY_20171123 disable row movement;

alter table EQRECIPEITEMHISTORY_20171123 split partition p_max at (to_date('2018/08/01 00:00:00','yyyy/mm/dd hh24:mi:ss')) into (partition p_201807,partition p_max);

select * from EQRECIPEITEMHISTORY_20171123 partition (P_201807);

默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改。這種情況可以通過開啟表的行移動來允許對分區字段的update 操作:

alter table xxx enable row movement;

之後就可以成功update 分區字段,同時因為行的物理移動,導致rowid發生變化,對應列值的索引葉塊 會標記為刪除,插入新的葉塊,重定義完分區后,記得關閉行移動。

alter table xxx disable row movement;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值