本帖最后由 gongdaxuesheng 于 2014-09-05 11:24:19 编辑

解决方案 »

  1.   

    然后将A_temp表的信息和C表信息整合后插入B表,删除A_temp表。
    此步骤有一个时间差的问题假设时间time1开始执行第一步操作(将A_temp表的信息和C表信息整合后插入B表)
    此时插入的诗句为time1这个时刻的数据
    假设时间time2,第一步执行结束,开始执行第二部(删除A_temp表。)
    此时删除的数据为time2时刻所有的数据
    如果time1到time2这个时间段内,如果有数据插入到A_TEMP,
    则这些数据并没有最终插入到B表,而是直接又从表A_TEMP删除了修正方法:删除A_temp表时增加条件,只删除time1之前的数据,而不是删除全表
      

  2.   


    这个应该没有时间差吧,存储过程开始的时候定义了两个记录时间的变量,S_time记录的是B表的最大时间,E_time记录的是系统当前时间,插入A_temp表的是这段时间点的数据
      

  3.   

    A_temp删除数据时是否也是通过这两个变量限定的
    主要是删除的时候有没有多删
      

  4.   

    另外B表的create_time存储的是E_time,还是sysdate
    e_time和sysdate之间也可能存在时间差
      

  5.   


    B表的create_time是已经存在的时间字段。取时间范围是S_time到E_time-5minute的A表数据插入到A_temp表,可能我描述不太清楚,但是很谢谢你。   另外我将结束时间改为当前时间的前二十分钟,现在四天了还没出现遗漏数据情况。再观测几天,如果不出现遗漏数据情况的话,可能跟Oracle的插入数据的机制有关系。
      

  6.   

    目前未出现遗失数据情况,谢谢 @bw555 和@wmxcn2000两位大神的热心解答