Bonjour à tous.
Voilà le trigger que j'ai mis dans un fichier :
Et voilà les erreurs que je me prends lorsque j'importe le fichier (db2 -tf "TRIGGERS.SQL") :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 CREATE TRIGGER LISTE_MODULES_OBL AFTER INSERT ON CONTRATS REFERENCING NEW AS N FOR EACH ROW BEGIN FOR RES AS SELECT ID_MODULE FROM FORMATIONS_MODULES WHERE ID_FORMATION = N.ID_FORMATION AND TYPE_MODULE = 1 DO INSERT INTO CONTRATS_MODULES (ID_MODULE, ID_CONTRAT) VALUES (RES.ID_MODULE, N.ID_CONTRAT); END FOR; END
J'ai installé le DB2 Express-C gratuit pour Windows. J'ai d'autres triggers avec lesquels j'ai eu des problèmes : en fait dès que je mets autre chose que WHEN (....) SQLSTATE '....' (.....); (par exemple si je place tout dans un bloc BEGIN ... END) j'ai des erreurs du type celles ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit pas d'une commande valide pour l'interpréteur de commandes. Le message SQL suivant a été renvoyé lors de son traitement : SQL0104N Une marque inattendue "RES" figure à la suite de "BEGIN FOR". Parmi les marques attendues, on trouve : "JOIN". LINE NUMBER=6. SQLSTATE=42601 DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit pas d'une commande valide pour l'interpréteur de commandes. Le message SQL suivant a été renvoyé lors de son traitement : SQL0104N Une marque inattendue "END-OF-STATEMENT" figure à la suite de "END FOR". Parmi les marques attendues, on trouve : "JOIN <joined_table>". SQLSTATE=42601 DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit pas d'une commande valide pour l'interpréteur de commandes. Le message SQL suivant a été renvoyé lors de son traitement : SQL0104N Une marque inattendue "END-OF-STATEMENT" figure à la suite de "END TERMINATE". Parmi les marques attendues, on trouve : "JOIN <joined_table>". SQLSTATE=42601
Edit : je précise que j'ai fait un copier/coller d'un trigger par défaut de DB2 (POLICY_DR je crois) que j'ai ensuite importé et j'ai des erreurs du même type ; il doit certainement y avoir un truc qui m'échappe.
Pouvez-vous m'aider SVP ?
Partager