- 爱易网页
-
Oracle教程
- 有关oracle中表分区维护的有关问题,求高手解答
日期:2014-05-17 浏览次数:20846 次
有关oracle中表分区维护的问题,求高手解答
一些关于表分区管理的问题,直接上代码,一次执行即可,问题已经以红色标志,望高手解惑。
-测试分区维护操作
--创建一个表,以reader_id进行范围分区
create table my_reader
(
reader_id number(3) primary key,
company varchar2(10),
name varchar2(10),
sex varchar2(2),
grade varchar2(10),
addr varchar2(50)
)
partition by range(reader_id)
(
partition p1 values less than(115),
partition p2 values less than(119),
partition p3 values less than(123)
);
--插入若干数据
insert into my_reader values(111,'信息系','王维利','女','教授','1号楼424');
insert into my_reader values(112,'财会系','李 立','男','副教授','2号楼316');
insert into my_reader values(113,'经济系','张 三','男','讲师','3号楼105');
insert into my_reader values(114,'信息系','周华发','男','讲师','1号楼316');
insert into my_reader values(115,'信息系','赵正义','男','工程师','1号楼224');
insert into my_reader values(116,'信息系','李 明','男','副教授','1号楼318');
insert into my_reader values(117,'计算机系','李小峰','男','助教','1号楼214');
insert into my_reader values(118,'计算机系','许鹏飞','男','助工','1号楼216');
insert into my_reader values(119,'计算机系','刘大龙','男','教授','1号楼318');
insert into my_reader values(120,'国际贸易','李 雪','男','副教授','4号楼506');
insert into my_reader values(121,'国际贸易','李 爽','女','讲师','4号楼510');
insert into my_reader values(122,'国际贸易','王 纯','女','讲师','4号楼512');
--查询表中的所有数据
select * from my_reader;
--查询表中第一个分区内的所有数据
select * from my_reader partition(p1);
--添加分区,只能在最后一个分区后进行添加分区的操作
alter table my_reader add partition p4 values less than(126);
--向新添加的分区中加入数据
insert into my_reader values(123,'财会系','沈小霞','女','助教','2号楼202');
insert into my_reader values(124,'财会系','朱 海','男','讲师','2号楼210');
insert into my_reader values(125,'财会系','马英明','男','副教授','2号楼212');
--查询新分区中的数据
select * from my_reader partition(p4);
--删除分区记录再插入新记录,操作成功delete from my_reader partition(p4);
insert into my_reader values(123,'财会系','沈小霞','女','助教','2号楼202');
--截断分区,删除分区中的所有数据,分区结构保持不变
alter table my_reader truncate partition p4;
--查询已删除分区的数据,该分区中没有任何记录
select * from my_reader partition(p4);
--截断分区后,向分区中加入数据,操作失败,提示分区不存在?insert into my_reader values(124,'财会系','沈小霞','女','助教','2号楼202');
--删除分区,可以删除表中的任意一个分区,删除后不能插入该范围的记录,分区信息不再存在
alter table my_reader drop partition p3;
--查询已删除分区的数据,运行时提醒分区不存在
select * from my_reader partition(p3);
--插入一条记录,操作失败,提示分区索引不存在
insert into my_reader values(121,'国际贸易','李 爽','女','讲师','4号楼510');
--合并分区,合并两个(或多个)相邻的分区,不能再插入数据?
alter table my_reader merge partitions p1,p2 into partition p2;
--查询合并后的分区的数据
select * from my_reader partition(p2);
--合并分区后,插入数据失败?insert into my_reader values(110,'财会系','沈小霞','女','助教','2号楼202');