首页 > 代码库 > 表分区 使用
表分区 使用
10g 时间分区,每个时间分区要建一个对应的分区。
create table table_aaa(entry_id VARCHAR2(18),pre_entry_id VARCHAR2(18),id_chk VARCHAR2(1),i_e_flag VARCHAR2(1),i_e_port VARCHAR2(4),i_e_date DATE,d_date DATE, entry_part varchar2(20))partition by range (d_Date)subpartition by list (entry_part) subpartition template(subpartition EH_B values (‘B‘),subpartition EH_C values (‘C‘),subpartition EH_E values (‘E‘),subpartition EH_H values (‘H‘),subpartition EH_M values (‘M‘),subpartition EH_N values (‘N‘),subpartition EH_X values (‘X‘),subpartition EH_OTHER VALUES (DEFAULT) )(partition part_200201 values less than (to_date(‘200201‘,‘yyyymm‘)));
--再增加表分区
alter table table_aaa add partition part_200202 values less than (to_date(‘200202‘,‘yyyymm‘))(subpartition EH_B values (‘B‘),subpartition EH_C values (‘C‘),subpartition EH_E values (‘E‘),subpartition EH_H values (‘H‘),subpartition EH_M values (‘M‘),subpartition EH_N values (‘N‘),subpartition EH_X values (‘X‘),subpartition EH_OTHER VALUES (DEFAULT) );
上面已经建立了两个分区,因为现在的业务要求是每个月一个分区,所以每个月都是再建 一个分区。
那么这样应该用一个job,调试存储过程,在存储过程里写动态建分区:
execute immediate ‘alter table table_aaa add partition values (‘||CHR(39)||‘part_‘||table_aaa.d_Date||CHR(39)||‘) (subpartition values less than(to_date(sysdate,‘|| CHR(39)||yyyymm||CHR(39)||‘)))( subpartition EH_B values (‘‘‘B‘‘‘),subpartition EH_C values (‘‘‘C‘‘‘),subpartition EH_E values (‘‘‘E‘‘‘),subpartition EH_H values (‘‘‘H‘‘‘), subpartition EH_M values (‘‘‘M‘‘‘),subpartition EH_N values (‘‘‘N‘‘‘),subpartition EH_X values (‘‘‘X‘‘‘),subpartition EH_OTHER VALUES (DEFAULT))‘;
表分区 使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。