我在一个表上建立Insert触发器,采用批处理的方式往这个表插入数据的时候,执行到pstmt.executeBatch();时停止。如果禁止触发器则可以提交。
触发器代码:
create or replace trigger gps_triger
  before insert ON vehicle_gps_history
  for each row
begin
  update gis_vehicle_gps
     set LONGITUDE    = :NEW.LONGITUDE,
         LATITUDE     = :NEW.LATITUDE,
         KPM          = :NEW.KPM,
         ANGLE        = :NEW.ANGLE,
         MSG_REC_TIME = :NEW.MSG_REC_TIME,
         VEHICLE_NUM  = :NEW.VEHICLE_NUM
   where VEHICLE_ID = :new.VEHICLE_ID;
end;

解决方案 »

  1.   

    一次提交1000条记录,insert的时候触发更新另一个表,能造成数据库崩溃吗?
      

  2.   

    有可能是你Java端用批处理照成的,你的是before行级触发器,Java端一次过来1000条,触发器不知道这么多数据如何处理,因为before触发器,:new关键字分不清具体是哪条没像你这样做过,望高人来解答!观望!
      

  3.   

    我也遇到了类似的问题,不知道楼主解决了没有,我的是after触发器...我的数据可以插入,但是需要用批处理的数据去查询比较另外一个表的数据的时候,不执行触发器...