当前位置:Gxlcms > 数据库问题 > oracle exchange partition 測试

oracle exchange partition 測试

时间:2021-07-01 10:21:17 帮助过:26人阅读


drop table t_part_list purge;
create table t_temp as select 1 id, t.owner,t.OBJECT_NAME,t.OBJECT_ID,t.OBJECT_TYPE from dba_objects t;
create table t_part_list (id number,owner varchar2(20),object_name varchar2(40),object_id number,object_type varchar2(20))
partition by list (id)
(partition p1 values(1) tablespace tbs1,
 partition p2 values(2) tablespace tbs2
);
 3.查看表数据
SQL> select count(*) from t_part_list;
 
COUNT(*)
---------
          0
SQL> select count(*) from t_temp;
 
  COUNT(*)
----------
    80905
4.交换数据
alter table t_part_list exchange partition p1 with table  t_temp;

alter table t_part_list exchange partition p1 with table  t_temp without validation;--不再验证数据有效性


  
5.查看表数据
        SQL> select count(*) from t_part_list;
 
COUNT(*)
----------       
80905
SQL> select count(*) from t_part_list partition(p1);
 
  COUNT(*)
----------
    80905
SQL> select count(*) from t_temp;
 
  COUNT(*)
----------
     0
6.注意
在将未分区表的数据迁移到分区表中时。可能出现ora-14099的错误。尽管能够用without validation去解决,可是此时进入分区表的数据可能不符合分区规则。
所以without validation一定要慎用。
   涉及交换的两表之间表结构必须一致,除非附加with validation子句;
   假设是从非分区表向分区表做交换。非分区表中的数据必须符合分区表中指定分区的规则,除非附加without validation子句;
   假设从分区表向分区表做交换,被交换的分区的数据必须符合分区规则,除非附加without validation子句;
      Global索引或涉及到数据修改了的global索引分区会被置为unusable,除非附加update indexes子句。


  提示:一旦附加了without validation子句。则表示不再验证数据有效性,因此指定该子句时务必谨慎。





oracle exchange partition 測试

标签:dbf   tables   auto   转换   之间   object_id   object   objects   ora   

人气教程排行