1.表分区:范围分区,散列分区,列表分区,组合分区,inetrval分区
范围分区:商品零售表,按照销售日期所在的季度创建4个分区
--先建立表空间:临时表空间是不可以存放数据的,此处不能建临时表空间
CREATE tablespace TBSP_1 datafile '/home/oracle/app/oracle/oradata/helowin/TBSP_1.dbf'
SIZE 10M
extent management local uniform size 256K;
CREATE tablespace TBSP_2 datafile '/home/oracle/app/oracle/oradata/helowin/TBSP_2.dbf'
SIZE 10M
extent management local uniform size 256K;
--创建表结构,范围分区
drop TABLE ware_retail_part;--删除表
CREATE TABLE ware_retail_part(--新建表
?? ?id INTEGER primary key,
?? ?retail_date date,--分区键
?? ?ware_name VARCHAR2(50)
)
--范围分区
partition by RANGE(retail_date)--关键字range
(?? ?
--第一季度
partition par_01 VALUES less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace TBSP_1,
--第二季度
partition par_02 VALUES less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace TBSP_1,
--第三季度
partition par_03 VALUES less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace TBSP_2,
--第四季度
partition par_04 VALUES less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace TBSP_2
);
注意语法结构
2.插入数据,然后测试查询数据是否在各自符合的分区内
--插入数据,测试数据是否在符合的分区内
INSERT into ware_retail_part values(1,to_date('2011-01-20','yyyy-mm-dd'),'平板电脑');
INSERT into ware_retail_part values(2,to_date('2011-04-5','yyyy-mm-dd'),'智能手机');
select * from ware_retail_part;--整体查询数据存在表示插入成功
--按照分区查询数据
通过分区查找也可以查到数据,表示我们的表分区成功保存了符合的数据。
错误点:开始创建的是临时表空间,导致报错,ORA-02195:尝试创建的PERMANENT对象在TEMPORARY表空间中,后来查询资料发现,临时表空间不可以存放数据,所以删除了临时表空间,重建表空间,问题解决。