`
wm920
  • 浏览: 77479 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle: 用数据交换方式把表数据迁移到分区表实例(二)

阅读更多
--进行数据交换


alter table kingstar.EMP_partition exchange partition emp_max with table kingstar.emp; 


  --查分区表数据

 select * from kingstar.EMP_partition; 
  1 1  蔡浪 D 0 2008-8-1 12:22:13 1000.00 1000.00 10 
  2 2  蔡星 D 1 2008-9-1 13:23:12 5000.00 5000.00 10 



  --查源表数据已被清空  

select * from kingstar.emp; 
  --往源表插数据,索引失效 
  insert into kingstar.emp values (1,’ 蔡浪’,’D’,0,to_date(’20080801 12:22:13’,’yyyymmdd hh24:mi:ss’),1000,1000,10); 
  insert into kingstar.emp values (2,’ 蔡星’,’D’,1,to_date(’20080901 13:23:12’,’yyyymmdd hh24:mi:ss’),5000,5000,10); 
  第 1 行出现错误: 
  ORA-01502: 索引 ’KINGSTAR.PK_EMP’ 或这类索引的分区处于不可用状态 


  --索引重建


alter index kingstar.pk_emp rebuild ; 



 --再插入数据可以完成 


insert into kingstar.emp values (1,’ 蔡浪’,’D’,0,to_date(’20080801 12:22:13’,’yyyymmdd hh24:mi:ss’),1000,1000,10); 
  insert into kingstar.emp values (2,’ 蔡星’,’D’,1,to_date(’20080901 13:23:12’,’yyyymmdd hh24:mi:ss’),5000,5000,10); 


  --查询数据   


select * from kingstar.emp; 
  1 1  蔡浪 D 0 2008-8-1 12:22:13 1000.00 1000.00 10 
  2 2  蔡星 D 1 2008-9-1 13:23:12 5000.00 5000.00 10 



  --拆分分区,只能将一个分区插成两个分区,并且指定插分后的第一个分区的内容如to_date(’200809’,’YYYYMM’)就是该分区emp_200808存放200808这个月数据

  --也就是相当于定义分区时的 partition emp_200808 values less then(to_date(’200809’,’yyyymm’))

  
-- into (partition emp_200810,partition emp_maxes); 指定拆分出来的less than 的分区名字和maxvalue的分区名字
alter table kingstar.emp_partition split partition emp_max at(to_date(’200809’,’YYYYMM’)) into (partition emp_200808,partition emp_max); 
  alter table kingstar.emp_partition split partition emp_max at(to_date(’200810’,’YYYYMM’)) into (partition emp_200809,partition emp_max); 
  alter table kingstar.emp_partition split partition emp_max at(to_date(’200811’,’YYYYMM’)) into (partition emp_200810,partition emp_upper); 
  alter table kingstar.emp_partition split partition emp_upper at(to_date(’200812’,’YYYYMM’)) into (partition emp_200811,partition emp_max); 

  --查询分区数据  


select * from  kingstar.emp_partition partition(emp_200808); 
  1 1  蔡浪 D 0 2008-8-1 12:22:13 1000.00 1000.00 10 


  --修改分区名字


alter table kingstar.emp_partition rename partition emp_max to emp_upper;

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics