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; 就是不顯示有沒有資料。,
uj5u.com熱心網友回復:
主要問題 還是在于 為什么JZ_ID=:NEW.JZ_ID; 怎么也取不到值 一直是nulluj5u.com熱心網友回復:
你看看你的欄位到底是JZID還是JZ_IDuj5u.com熱心網友回復:
欄位沒有錯的!。 能按照這個 查處個數,,但是就是不顯示,這個值是什么uj5u.com熱心網友回復:
你這個觸發器的作用是什麼?怎麼看都只是插入一筆data7th表數據,是不是不能更新JZ的那兩個值?
uj5u.com熱心網友回復:
insert運行完后加個commit試試uj5u.com熱心網友回復:
不提交的話查不到資料,問題是不是在這里。試試在insert后加入commit。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/87718.html
標籤:開發
上一篇:行轉列
