1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| create or replace TRIGGER FACTUREF_ANNEE_NUMERO
BEFORE INSERT ON FACTUREF for each row
DECLARE
NEW_CLE_FAC VARCHAR2(8);
NB NUMERIC;
CPT NUMERIC;
BEGIN
SELECT count(CLE_FAC) INTO CPT FROM FACTUREF WHERE ANNEE_FAC = :new.ANNEE_FAC ;
if CPT > 0 then
SELECT MAX(CLE_FAC) INTO NEW_CLE_FAC FROM FACTUREF WHERE ANNEE_FAC = :new.ANNEE_FAC ;
NEW_CLE_FAC := SUBSTR(NEW_CLE_FAC, 3, 8);
NB := cast(NEW_CLE_FAC as numeric ) ;
NB := NB + 1;
NEW_CLE_FAC := cast(nb as varchar2);
:new.CLE_FAC := concat(:new.ANNEE_FAC , LPAD(NEW_CLE_FAC, 6, '0'));
ELSE
:new.CLE_FAC := concat(:new.ANNEE_FAC , '000001' ) ;
END IF; |
Partager