实验环境
搭建平台:VMware Workstation
OS:OL 6.10
DB:Oracle 11.2.0.4
转换步骤
本文将scott用户的emp表为例,转换成分区表
1.先创建一个空的分区表,这里使用范围分区
SQL> conn scott/tiger
SQL> create table emppart (ename varchar2(15) ,sal number(4))
partition by range (sal)
(partition p1 values less than (1000),
partition p2 values less than (2000),
partition p3 values less than (3000),
partition p4 values less than (4000),
partition pmax values less than (maxvalue));
2.将emp数据插入到新建的分区表 (如果字段的对应关系正确,Oracle会自动帮我们按分区分类)
SQL> insert into emppart (ename,sal) select ename ,sal from emp;
3.验证
(1)任意查看几个分区的数据,看是否正确分类
SQL> select * from emppart partition (p1);
QTY NAME
---------- ------------------------------
800 SMITH
950 JAMES
SQL> select * from emppart partition (p3);
QTY NAME
---------- ------------------------------
2975 JONES
2850 BLAKE
2450 CLARK
SQL> select * from emppart partition (pmax);
QTY NAME
---------- ------------------------------
5000 KING
##插入一行数据试试
SQL> insert into emppart values (6800,'HHW');
1 row created.
SQL> select * from emppart partition (pmax); ##正常输出
QTY NAME
---------- ------------------------------
5000 KING
6800 HHW
(2)将pmax再分区验证下
SQL> alter table emppart
split partition pmax at (6000) into (partition p5 ,partition pmax);
Table altered.
SQL> select * from emppart partition (pmax);
QTY NAME
---------- ------------------------------
6800 HHW
SQL> select * from emppart partition (p5); ## 验证新分区没问题
QTY NAME
---------- ------------------------------
5000 KING
4. 重命名分区表
SQL> drop table emp; ##删掉原表才能重命名
SQL> alter table emppart rename to emp;
注:
1. 如果表过大,为了加快insert的速度,可以使用下面的方法:
(1)SQL>alter session enable parallel dml;
(2)SQL> insert /*+APPEND PARALLEL*/ into emppart (ename,sal) select ename ,sal from emp;
(3)SQL>alter session disable parallel dml;
2. 还可以简化成 一行命令直接转换:
(1)SQL>alter session enable parallel dml;
(2)create table emppart (ename varchar2(15) ,sal number(4)) partition by range (sal)
(<此处省略>) as insert /*+PARALLEL*/ into emppart (ename,sal) select ename ,sal from emp;
(3)SQL>alter session disable parallel dml;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2926015/ ,如需转载,请注明出处,否则将追究法律责任。