create or replace trigger DATA7TH
  before insert on data7th  
  for each row
declare
  -- local variables here
  V_NUM NUMBER; ---总数
  V_NUMBER NUMBER;
  N_LAT NUMBER;
  N_LNG NUMBER;
  
 -- N_JZ_ID NVARCHAR2(150);
  
begin
 --:NEW.LAT:=111;
 --:NEW.LNG:=222; 
 V_NUM:=0;
 --N_JZ_ID:=:NEW.JZ_ID;
 SELECT COUNT(*) INTO v_NUM FROM DATA7TH WHERE JZ_ID=:NEW.JZ_ID;  ---总数
 IF V_NUM=0 THEN  ---当总数==0时候,拿到  JZ的数据 进行插入,并且跟新JZ的时间和CAR_MASSAGE的经纬度。
  V_NUMBER:=0;------查询到的总数
  SELECT COUNT(*) INTO V_NUMBER FROM JZ WHERE JZID=:NEW.JZ_ID;---在JZ表查询,如果查询到,就那LAT,LNG的值。跟新插入语句中的LAT,LNG的值,并且插入。
   IF V_NUMBER > 0 THEN      
   SELECT LAT,LNG INTO N_LAT,N_LNG FROM JZ WHERE JZID=:NEW.JZ_ID;
   INSERT INTO DATA7TH (UPLOADID,MONTH,JZ_ID,RFID,LNG,LAT,CREATEDATE)VALUES(:NEW.UPLOADID,:NEW.MONTH,:NEW.JZ_ID,:NEW.RFID,N_LNG,N_LAT,:NEW.CREATEDATE);  
   END IF;
   END IF;
end DATA7TH;为什么   JZ_ID=:NEW.JZ_ID;       :NEW.JZ_ID应该是个null  为什么我  SELECT COUNT(*) INTO v_NUM FROM DATA7TH WHERE JZ_ID=:NEW.JZ_ID;    的v_NUM    是等于  1      把鼠标放  JZ_ID=:NEW.JZ_ID;   就是不显示有没有数据。,

解决方案 »

  1.   

    主要问题  还是在于   为什么JZ_ID=:NEW.JZ_ID;   怎么也取不到值      一直是null
      

  2.   

    你看看你的字段到底是JZID还是JZ_ID
      

  3.   

    你這個觸發器的作用是什麼?
    怎麼看都只是插入一筆data7th表數據,是不是不能更新JZ的那兩個值?
      

  4.   

    insert运行完后加个commit试试
      

  5.   

    不提交的话查不到数据,问题是不是在这里。试试在insert后加入commit。