ITPub博客

首页 > 数据库 > Oracle > Oracle 分区表分配分区

Oracle 分区表分配分区

原创 Oracle 作者:leodinas_kong 时间:2017-11-24 09:22:02 0 删除 编辑

情况一:没有指定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;

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

请登录后发表评论 登录
全部评论

注册时间:2016-10-11

  • 博文量
    102
  • 访问量
    126813