Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2012, 15h16   #1
Invité régulier
 
Homme
Inscription : août 2011
Messages : 56
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : août 2011
Messages : 56
Points : 9
Points : 9
Par défaut Problème procédure Oracle

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 :
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 :
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
thomasaurelien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 15h19   #2
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
Bonjour,

Tu as oublié le mot clé EXCEPTION (cf tuto).
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/01/2012, 15h33   #3
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
J'ai remarqué aussi quelques petites erreurs ,

1) tu as oublié les ' à ton DBMS_OUTPUT :

Code :
dbms_output.put_line('Commande inexistante');
2) Ta procédure ne se termine pas correctement :

__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/01/2012, 15h06   #4
Invité régulier
 
Homme
Inscription : août 2011
Messages : 56
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : août 2011
Messages : 56
Points : 9
Points : 9
Par défaut Résolu procédure stockée

Ah des erreurs d'étourderie ! Merci Lola sa marche nikel
thomasaurelien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h41.


 
 
 
 
Partenaires

Hébergement Web