Bonjour, je viens de créer (enfin bientot j'espere) une procédure qui permet de calculer le montant d'une commande.
je voudrais gérer les exceptions quand la commande passer en paramètre n'éxiste pas mais je bloque un peu.
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 create or replace procedure montant_commande (idcomm IN commandes.idcommande%TYPE) as aucune_commande exception; dernier_enregistrement commandes.idcommande%type; begin select max(idcommande) into dernier_enregistrement from commandes; if idcomm>dernier_enregistrement then raise aucune_commande; else update commandes set montant = round((select sum(p.prixplat * co.quantite) from plats p, composer co, commandes c where c.idcommande = co.idcommande and p.idplat = co.idplat and c.idcommande=idcomm)) where idcommande = idcomm; end if; when aucune_commande then dbms_output.put_line(Commande inexistante); end montant_commande;
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 19/1 PLS-00103: Symbole "WHEN" rencontrÚ Ó la place d'un des symbole suivants : ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <identificateur> <identificateur entre guillemets> <variable attachÚe (bind variable)> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge Symbole "case" a ÚtÚ substituÚ Ó "WHEN" pour continuer. 20/32 PLS-00103: Symbole "INEXISTANTE" rencontrÚ Ó la place d'un des LINE/COL ERROR -------- --------------------------------------------------------------- symboles suivants : . ( ) , * @ % & = - + < / > at in is mod remainder not rem => <exposant (**)> <> or != or ~= >= <= <> and or like like2 like4 likec as between from using || multiset member submultiset Symbole "." a ÚtÚ substituÚ Ó "INEXISTANTE" pour continuer. 21/5 PLS-00103: Symbole "MONTANT_COMMANDE" rencontrÚ Ó la place d'un des symboles suivants : case
Partager