table2是完全的新表,还是导之前已经有数据了?
如果是新表,可以用create table table2 as select * from table1;旧的表可以用
insert into table2 select * from table1 where rownum<=100000;
commit;
insert into table2 
(select * from table1 where rownum<=200000
 minus
 select * from table1 where rownum<=100000);
commit;
insert into table2 
(select * from table1 where rownum<=300000
 minus
 select * from table1 where rownum<=200000);
commit;
insert into table2 
(select * from table1 where rownum<=500000
 minus
 select * from table1 where rownum<=300000);
commit;

解决方案 »

  1.   

    应该是这样吧insert into table2 select * from table1 where rownum<=100000;
    commit;
    insert into table2 
    (select * from table1 where rownum<=200000
     minus
     select * from table1 where rownum>100000);
    commit;
    insert into table2 
    (select * from table1 where rownum<=300000
     minus
     select * from table1 where rownum>200000);
    commit;
    insert into table2 
    (select * from table1 where rownum<=400000
     minus
     select * from table1 where rownum>300000);
    commit;
    另外,还可以用copy命令,此命令可以在不同库之间拷贝数据
    set copycommit 1  //多个批次可以一次提交
    set arraysize 1000 //每1000个记录,提交一次数据。这样减少回退段的大小。
    copy 
    from username/password@servicename(源) 
    to username/pasword@servicename(目标)
    <append|create|insert|replace>(参数,可以追加,创建,插入,替换) 
    table2
    using select * from table1
      

  2.   

    to: ccanhuijun,rownum是不能用>号的因此应该是Michaelyfj(星星还是那颗星星)对,我也验证过了,不过还是非常感谢俩位。
    现给分:
    Michaelyfj  15
    ccanhuijun   5