create or replace TRIGGER FORMSON_0021_I
before INSERT ON seeyon.formson_0021
for each row
declare
F_ID NUMBER(19,0) :=0;
f_id_10 decimal(20,2);
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF INSERTING THEN
select id into F_ID from formson_0021 where sort=:new.sort-1 and FORMMAIN_ID=:new.FORMMAIN_ID;
IF F_ID > 0 THEN
select field0010 into f_id_10 from formson_0021 where id =F_ID;
IF :new.field0009 is not null THEN
:new.FIELD0010 :=f_id_10+:new.field0009;
END IF;
IF :new.field0013 is not null THEN
:new.FIELD0010 :=f_id_10-:new.field0013;
END IF;
END IF;
END IF;
COMMIT;
END;
uj5u.com熱心網友回復:
不要在觸發器里處理實際業務,更不要寫自治事務。看你的代碼應該只需要改寫一下insert陳述句。把表結構,測驗資料,需求發出來吧。
uj5u.com熱心網友回復:
樓主這是要做什么呢?uj5u.com熱心網友回復:

余額等于上一條余額加減收入和支出
uj5u.com熱心網友回復:
沒必要寫觸發器,用這種陳述句寫insert into tab1(.., .., ..)
select .., .., (select 余額 from tab1 where ......) from dual;
uj5u.com熱心網友回復:
這個 陳述句咋寫呢? 沒用過 dual表uj5u.com熱心網友回復:
用execute immediate陳述句立即執行即可,詳細可以百度,很簡單的,你這樣的我也寫過類似的轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/52492.html
標籤:開發
上一篇:SPA(SQL Performance Analyzer)的用戶移動問題
下一篇:Oracle正則運算式函式:regexp_like、regexp_substr、regexp_instr、regexp_replace
