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

日期: 2008-08-26 作者:loncai 来源:TechTarget中国 英文

  –进行数据交换







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;

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

loncai
loncai

相关推荐