使用DBMS_REDEFINITION對已存在的表按月自動分區(qū)

參考1
參考2
參考3

創(chuàng)建分區(qū)臨時表

CREATE TABLE stocktaking2 (
  id                   NUMBER(10) not null,
  app_source           NUMBER(10) not null,
  batch_no             VARCHAR2(30) not null,
  stocktaking_date     DATE not null,
  inventory_class_id   NUMBER(10),
  inventory_class_code VARCHAR2(30) not null,
  inventory_class_name NVARCHAR2(100),
  store_id             NUMBER(10),
  store_code           VARCHAR2(30) not null,
  store_name           NVARCHAR2(100) not null,
  store_en_name        NVARCHAR2(100),
  item_id              NUMBER(10),
  item_code            VARCHAR2(30) not null,
  item_name            NVARCHAR2(100) not null,
  item_unit            VARCHAR2(30) not null,
  item_cost            NUMBER(20,6) not null,
  inventory_type_code  VARCHAR2(30) not null,
  inventory_type_name  NVARCHAR2(100),
  inventory_qty        NUMBER(20,6) not null,
  inventory_amount     NUMBER(20,6) not null,
  currency_id          NUMBER(10),
  currency_code        VARCHAR2(30) not null,
  comments             NVARCHAR2(100),
  status               NUMBER(10),
  imp_date             DATE not null,
  proc_status          NUMBER(10) not null,
  approve_status       NUMBER(10),
  approve_by           NUMBER(10),
  create_date          DATE not null,
  create_by            NUMBER(10) not null,
  update_date          DATE,
  update_by            NUMBER(10)
)
PARTITION BY RANGE (imp_date)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
( PARTITION p0 VALUES LESS THAN (TO_DATE('2016-01-01', 'YYYY-MM-DD'))--,
  --PARTITION p1 VALUES LESS THAN (TO_DATE('2016-02-01', 'YYYY-MM-DD')),
  --PARTITION p2 VALUES LESS THAN (TO_DATE('2016-03-01', 'YYYY-MM-DD')),
  --PARTITION p3 VALUES LESS THAN (TO_DATE('2016-04-01', 'YYYY-MM-DD')),
  --PARTITION p4 VALUES LESS THAN (TO_DATE('2016-05-01', 'YYYY-MM-DD')) 
);

由于這里使用了Oracle 11g的INTERVAL功能签赃,所以PARTITION語句可以只寫一個

檢查是否可以進行REDEFINITION

EXEC DBMS_REDEFINITION.can_redef_table(USER, 'stocktaking');

開始 REDEFINITION

EXEC DBMS_REDEFINITION.start_redef_table(USER, 'stocktaking', 'stocktaking2');

創(chuàng)建索引和約束

SET SERVEROUTPUT ON
DECLARE
  l_errors  NUMBER;
BEGIN
  DBMS_REDEFINITION.copy_table_dependents(
    uname            => USER,
    orig_table       => 'stocktaking',
    int_table        => 'stocktaking2',
    copy_indexes     => DBMS_REDEFINITION.cons_orig_params,
    copy_triggers    => TRUE,
    copy_constraints => TRUE,
    copy_privileges  => TRUE,
    ignore_errors    => TRUE,
    num_errors       => l_errors,
    copy_statistics  => FALSE,
    copy_mvlog       => FALSE);
    
  DBMS_OUTPUT.put_line('Errors=' || l_errors);
END;
/

如果ignore_errors => FALSE, 在執(zhí)行該步時出現(xiàn)報錯,將ignore_errors設置為TRUE,忽略該錯誤器紧。

  • ORA-01442: column to be modified to NOT NULL is already NOT NULL

完成 REDEFINITION

BEGIN
  dbms_redefinition.finish_redef_table(
    uname      => USER,        
    orig_table => 'stocktaking',
    int_table  => 'stocktaking2');
END;
/

驗證是否已經(jīng)分區(qū)

stocktaking表已經(jīng)被分區(qū)

SELECT partitioned FROM user_tables WHERE table_name = 'stocktaking';

-- 刪除臨時表stocktaking2
DROP TABLE stocktaking2;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末螃概,一起剝皮案震驚了整個濱河市砍聊,隨后出現(xiàn)的幾起案子丈氓,更是在濱河造成了極大的恐慌软免,老刑警劉巖宫纬,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異膏萧,居然都是意外死亡漓骚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門榛泛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝌蹂,“玉大人,你說我怎么就攤上這事曹锨」赂觯” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵沛简,是天一觀的道長齐鲤。 經(jīng)常有香客問我,道長椒楣,這世上最難降的妖魔是什么给郊? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮捧灰,結果婚禮上淆九,老公的妹妹穿的比我還像新娘。我一直安慰自己毛俏,他們只是感情好炭庙,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著煌寇,像睡著了一般煤搜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唧席,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音嘲驾,去河邊找鬼淌哟。 笑死,一個胖子當著我的面吹牛辽故,可吹牛的內容都是我干的徒仓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼誊垢,長吁一口氣:“原來是場噩夢啊……” “哼掉弛!你這毒婦竟也來了症见?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤殃饿,失蹤者是張志新(化名)和其女友劉穎谋作,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乎芳,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡遵蚜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奈惑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吭净。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肴甸,靈堂內的尸體忽然破棺而出寂殉,到底是詐尸還是另有隱情,我是刑警寧澤原在,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布友扰,位于F島的核電站,受9級特大地震影響晤斩,放射性物質發(fā)生泄漏焕檬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一澳泵、第九天 我趴在偏房一處隱蔽的房頂上張望实愚。 院中可真熱鬧,春花似錦兔辅、人聲如沸腊敲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碰辅。三九已至,卻和暖如春介时,著一層夾襖步出監(jiān)牢的瞬間没宾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工沸柔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人褐澎。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓会钝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親工三。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容