Erreur de compilation trigger
Bonjour,
Je ne suis pas un utilisateur de trigger en général, c'est pour ceci que je viens demander votre aide car je ne trouve aucun moyen de résoudre mon problème...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| CREATE OR REPLACE TRIGGER INS_UPD_bkizcprt
AFTER INSERT OR UPDATE ON BKIZCPRT
FOR EACH ROW
DECLARE
f_sit_cent CHAR(5) := '99000';
f_date_comptable1 CHAR(8) := '02011900';
f_date_comptable2 CHAR(8) := '02011900';
CURSOR cur_bkizcprt
IS
SELECT * FROM bkizcprt
AND age = :OLD.age
AND ope = :OLD.ope
AND eve = :OLD.eve
AND ave = :OLD.ave
AND iden = :OLD.iden
AND lang = :OLD.lang;
f_bkizcprt cur_bkizcprt%ROWTYPE;
CURSOR cur_sit_cent
IS
SELECT MNT1
FROM BKNOM
WHERE CTAB = '098'
AND CACC = 'CENT';
CURSOR cur_date_comptable
IS
SELECT MNT1, MNT2
FROM BKNOM
WHERE CTAB = '001'
AND CACC = f_sit_cent
AND AGE = f_sit_cent;
BEGIN
OPEN cur_bkizcprt;
FETCH cur_bkizcprt INTO f_bkizcprt;
IF cur_bkizcprt%FOUND THEN
-- Recherche du site central
OPEN cur_sit_cent;
FETCH cur_sit_cent INTO f_sit_cent;
IF cur_sit_cent%FOUND THEN
-- Recherche de la date comptable
OPEN cur_date_comptable;
FETCH cur_date_comptable INTO f_date_comptable1, f_date_comptable2;
IF cur_date_comptable%FOUND THEN
-- Quelle est la bonne date comptable ?
IF f_date_comptable2 IS NULL THEN
:NEW.date_dermodif := f_date_comptable1;
ELSE
:NEW.date_dermodif := f_date_comptable2;
END IF;
END IF;
END IF;
UPDATE bkizcprt SET
date_dermodif = to_date(:NEW.date_dermodif) --Date de modifcation
WHERE age = :OLD.age
AND ope = :OLD.ope
AND eve = :OLD.eve
AND ave = :OLD.ave
AND iden = :OLD.iden
AND lang = :OLD.lang
;
END IF;
END;
/
SHOW errors;
exit; |
Il s'avère que en essayant d'exécuter avec sqlplus voici les erreurs que j'obtiens :
Code:
1 2
| 7/10 PL/SQL: SQL Statement ignored
8/10 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement |
Cependant, je trouve que cela ne correspond à rien...
Si une âme charitable pouvait m'aider svp.
Merci d'avance.