bonsoir a tous
j'ai crée une fonction qui renvoi un resultat de type NUMBER ,
et je doit l'utiliser dans un trigger , mais je connai pas la synatxe avec pl/sql
ma fonction est nommée : Qnt_Stock
le trigger est :
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
21
22
23
24
25 create or replace trigger maj_MntTotal_stock after insert on lignecommande declare stk_p produit.tockprod%type; id_p produit.idproduit%type; mnt_c commande.montanttotalcom%type; qnt_p lignecommande.quantiteprod%type; for each row begin select montanttotalcom into mnt_c from commande ; select (stockprod) into stk_p from produit; EXCEPTION when stk_p = qnt_stock(:new.idproduit) < :new.quantiteprod; then insert into ligneerreur (idcommande, idlig, idproduit, quantiteprod, stockprod) values ( :new.idcommande, :new.idlig, :new.idproduit, :new.quantiteprod, stk_p); end ; /
le trigger n'est pas complé , je veux commencer par la partie exception .
sous oracle le trigger est crée avec les erreur suivantes :
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 SQL> create or replace trigger maj_MntTotal_stock 2 3 after insert on lignecommande 4 5 declare 6 7 stk_p produit.tockprod%type; 8 id_p produit.idproduit%type; 9 mnt_c commande.montanttotalcom%type; 10 qnt_p lignecommande.quantiteprod%type; 11 12 for each row 13 begin 14 select montanttotalcom into mnt_c from commande ; 15 select (stockprod) into stk_p from produit; 16 17 18 19 EXCEPTION 20 when stk_p = qnt_stock(:new.idproduit) < :new.quantiteprod; then 21 insert into ligneerreur (idcommande, idlig, idproduit, quantiteprod, stockprod) values ( :new.i dcommande, :new.idlig, :new.idproduit, :new.quantiteprod, stk_p); 22 end ; 23 / Avertissement : Déclencheur créé avec erreurs de compilation. SQL> show errors Erreurs pour TRIGGER MAJ_MNTTOTAL_STOCK : LINE/COL ERROR -------- ----------------------------------------------------------------- 8/1 PLS-00103: Symbole "FOR" rencontré à la place d'un des symboles suivants : begin function package pragma procedure subtype type use <an identifier> <a double-quoted delimited-identifier> form current cursor
Merci de votre aide
Partager