将普通表转换成分区表有4种方法: 

 

1)  Export/import method 

 

2)  Insert with a subquery method 

 

3)  Partition exchange method(交换分区)

 

4)  DBMS_REDEFINITION(在线重定义)

 

 

交换分区的步骤:

 

1)  创建分区表,假设有2个分区,P1,P2

 

2)  创建表A存放P1规则的数据

 

3)  创建表B 存放P2规则的数据

 

4)  用表A 和P1 分区交换,把表A的数据放到到P1分区

 

5)  用表B 和p2 分区交换,把表B的数据存放到P2分区

 

示例:

a. 创建分区表:

sql> create table p_dba 

  2    (id number,time date) 

  3    partition by range(time) 

  4    ( 

  5    partition p1 values less than (to_date('2010-09-1', 'yyyy-mm-dd')), 

  6    partition p2 values less than (to_date('2010-11-1', 'yyyy-mm-dd')) 

  7    ); 

 

b.创建2个分别对应分区的基表:

SQL>  CREATE  TABLE  dba_p1  as  SELECT  id,time_fee  FROM  dba_old WHERE   

time_fee<TO_DATE('2010-09-1', 'YYYY-MM-DD');

 

SQL>  CREATE  TABLE  dba_p2  as  SELECT  id,time_fee  FROM  dba_old WHERE   

time_