Euh.. un select sur une table pour faire une multiplication ?
select(:new.HEURES_MO * :new.COUT_MO) into cout_ttc from matable;
En plus : PAS DE SELECT sur la table du TRIGGER en mode FOR EACH ROW
1 2 3 4 5 6 7 8
| CREATE OR REPLACE TRIGGER "DEGAT_COUT_TTC"
BEFORE UPDATE of HEURES_MO, COUT_MO
ON matable
FOR EACH ROW
Declare
BEGIN
:new.cout_global := new.HEURES_MO * :new.COUT_MO;
END; |
Que sur update ? Moi j'aurais mis l'insert aussi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CREATE TABLE wmc (HEURES_MO NUMBER, COUT_MO NUMBER, cout_global NUMBER)
CREATE OR REPLACE TRIGGER "DEGAT_COUT_TTC"
BEFORE INSERT OR UPDATE OF HEURES_MO, COUT_MO ON wmc
FOR EACH ROW
DECLARE
BEGIN
:NEW.cout_global := :NEW.HEURES_MO * :NEW.COUT_MO;
END;
INSERT INTO wmc (heures_MO, cout_mo) VALUES(1, 10.5)
SELECT * FROM wmc
HEURES_MO COUT_MO COUT_GLOBAL
1 10.5 10.5
UPDATE wmc set heures_MO = 2
SELECT * FROM wmc
HEURES_MO COUT_MO COUT_GLOBAL
2 10.5 21 |
Partager