Trigger
Fermé
sdrogba
Messages postés
66
Date d'inscription
mercredi 18 août 2010
Statut
Membre
Dernière intervention
3 novembre 2016
-
Modifié par irongege le 21/01/2013 à 16:54
sdrogba Messages postés 66 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 3 novembre 2016 - 22 janv. 2013 à 10:47
sdrogba Messages postés 66 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 3 novembre 2016 - 22 janv. 2013 à 10:47
A voir également:
- Trigger
- Assistant trigger - Guide
- Trigger Oracle : la fonction renvoie NULL - Forum Oracle
1 réponse
sdrogba
Messages postés
66
Date d'inscription
mercredi 18 août 2010
Statut
Membre
Dernière intervention
3 novembre 2016
22 janv. 2013 à 10:47
22 janv. 2013 à 10:47
J'avance sur mes problèmes le code est devenu ça :
Cependant j'ai réussit à determiner des erreurs les voicis :
7/10 PL/SQL: SQL Statement ignored
8/10 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
Une idée ?
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 = 'SITE-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;
Cependant j'ai réussit à determiner des erreurs les voicis :
7/10 PL/SQL: SQL Statement ignored
8/10 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
Une idée ?