天天看點

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;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31401608/viewspace-2147694/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/31401608/viewspace-2147694/