暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

范围分区

原创 水煮鱼 2022-07-07
1050

drop table rang_part_tab purge;

--注意,此分区为范围分区

create table range_part_tab (id number,deal_date date,area_code number,contents varchar2(4000))

partition by range (deal_date)

(

partition p1 values less than (TO_DATE('2012-02-01', 'YYYY-MM-DD')),

partition p2 values less than (TO_DATE('2012-03-01', 'YYYY-MM-DD')),

partition p3 values less than (TO_DATE('2012-04-01', 'YYYY-MM-DD')),

partition p4 values less than (TO_DATE('2012-05-01', 'YYYY-MM-DD')),

partition p5 values less than (TO_DATE('2012-06-01', 'YYYY-MM-DD')),

partition p6 values less than (TO_DATE('2012-07-01', 'YYYY-MM-DD')),

partition p7 values less than (TO_DATE('2012-08-01', 'YYYY-MM-DD')),

partition p8 values less than (TO_DATE('2012-09-01', 'YYYY-MM-DD')),

partition p9 values less than (TO_DATE('2012-10-01', 'YYYY-MM-DD')),

partition p10 values less than (TO_DATE('2012-11-01', 'YYYY-MM-DD')),

partition p11 values less than (TO_DATE('2012-12-01', 'YYYY-MM-DD')),

partition p12 values less than (TO_DATE('2013-01-01', 'YYYY-MM-DD')),

partition p_max values less than (maxvalue)

);

--以下是插入2012年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:

insert into range_part_tab (id,deal_date,area_code,contents)

select rownum,

to_date( to_char(sysdate-365,'J')+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J'),

ceil(dbms_random.value(590,599)),

rpad('*',400,'*')

from dual

connect by rownum <= 100000;

commit;

以上操作完成了范围分区的分区表创建,并构造出10万条的记录并插入到分区表中,注意一下5点。

a)范围分区的关键字为 partition by range

b)values less than是范围分区特定的语法,用于指明具体的范围,如 partition p2 values less than (TO_DATE('2012-03-01', 'YYYY-MM-DD')),表示小于3月份的记录

c)partition p1 到 partition max共13个分区

d)partition p_max values less than (maxvalue)表示超出这些范围的记录全部落在这个分区中

e)分区表中的分区可分别指定在不同的表空间中,如果不写,即在同一默认表空间中。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论