Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Débuter
Débuter Forum d'entraide pour débuter avec Oracle
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 04/11/2011, 17h28   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Par défaut Problème avec un fonction

Bonjour,

J'ai fait une fonction avec paramètre (une note) qui doit renvoyer la cote correspondante.

Par exemple : fCotePourNote(90) doit me donner comme résultat : A

Code :
1
2
3
CREATE OR REPLACE FUNCTION fCotePourNote(note IN INTEGER) RETURN CHAR IS
cote char(1);
BEGIN<blockquote>IF note BETWEEN 90 AND 100 THEN </blockquote><blockquote><blockquote>cote:='A';</blockquote></blockquote><blockquote>ELSEIF note BETWEEN 80 AND 89 THEN </blockquote><blockquote><blockquote>cote:='B';</blockquote></blockquote><blockquote>ELSEIF note BETWEEN 70 AND 79 THEN </blockquote><blockquote><blockquote>cote:='C';    </blockquote></blockquote><blockquote>ELSEIF note BETWEEN 60 AND 69 THEN </blockquote><blockquote><blockquote>cote:='D';</blockquote></blockquote><blockquote>ELSEIF note BETWEEN 0 AND 59 THEN </blockquote><blockquote><blockquote>cote:='E';</blockquote></blockquote><blockquote> END IF;      </blockquote><blockquote>RETURN cote;</blockquote>END fCotePourNote;
Ça ne fonctionne pas.
Par contre si je ne met qu'un seul if, ça fonctionne :
Code :
1
2
3
CREATE OR REPLACE FUNCTION fCotePourNote(note IN INTEGER) RETURN CHAR IS
cote char(1);
BEGIN<blockquote> IF note BETWEEN 90 AND 100 then cote:='A';</blockquote><blockquote> end IF;</blockquote><blockquote> RETURN cote;</blockquote>END fCotePourNote;
Votre aide sera grandement appréciée. Merci
johnny2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 19h02   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
On veut bien aider les canadiens à faire les devoirs, mais quand même, un minimum de recherche...
http://www.developpez.net/forums/d11...aide-fonction/
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2011, 19h34   #3
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Citation:
Envoyé par johnny2011 Voir le message
Bonjour,

J'ai fait une procédure avec paramètre (une note) qui doit renvoyer la cote correspondante.

Par exemple : fCotePourNote(90) doit me donner comme résultat : A



Ca ne fonctionne pas.
Par contre si je ne met qu'un seul if, ca fonctionne :


Votre aide sera grandement appréciée. Merci
Salut,

Juste un petit indice, ton problème est au niveau du ELSEIF.
__________________
Publications: http://schelabi.developpez.com/
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 21h56   #4
Invité de passage
 
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Merci pour votre réponse.

Désolé, j'ai fait pleins de recherche Google sur les fonctions mais je n'ai pas fait une recherche dans le forum.

Lui, utilise un CASE mais je voudrais savoir pourquoi mon elsif pose problème.

Citation:
Envoyé par Waldar Voir le message
On veut bien aider les canadiens à faire les devoirs, mais quand même, un minimum de recherche...
http://www.developpez.net/forums/d11...aide-fonction/
johnny2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 17h46   #5
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Les structure if then elseif correctes dans la doc oracle ...
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h13.


 
 
 
 
Partenaires

Hébergement Web