我的思路是把重复的话单查询出来放入另外一个表里,把所有重复的都删除,在另外的表里处理重复的,然后再放回来
insert into temptable select ... from table a,table b where a.**=b.**

解决方案 »

  1.   

    建立一个和你原来的表tab_y字段一样的空表(minextent 参数大些)tab_a、tab_b
    在tab_a的(主叫区号、)主叫、(被叫区号、)被叫、通话开始时间建立唯一索引。
    用一个游标在tab_y中逐行取数据,使用提示直接插入到tab_a中,当遇到重复数据时使用exception捕捉异常,如果你需要记录重复的数据就将游标的当前记录写到tab_b中,否则直接忽略异常进入下一次循环
      

  2.   

    补充一下,oraclev9i以上支持forall 语句循环,可使用它提高效率