[SQL] Erreur syntaxe dans fonction

Fermé
SuzukMan Messages postés 37 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 26 mai 2010 - 9 janv. 2008 à 14:51
Adorien Messages postés 1 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008 - 23 avril 2008 à 12:37
Bonjour,
Quelqu'un voit-il une erreur dans ce code !! car moi je vois pas! Merci
(BASE SQL SERVEUR 2005)

CREATE FUNCTION sf_GetLibStatut
@Num int
RETURNS varchar(15);
AS
BEGIN
Declare @LibStat varchar(15);

Select @LibStat = Lib
FROM TABLE
WHERE IdStatut = @Num;

RETURN @LibStat
END
A voir également:

4 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 janv. 2008 à 14:56
C'est quoi le libellé de l'erreur lorsque tu tente d'exécuter cette fonction ?
0
SuzukMan Messages postés 37 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 26 mai 2010 1
9 janv. 2008 à 15:08
Voici la liste des erreurs :

Msg 102, Niveau 15, État 1, Procédure sf_GetLibStatut, Ligne 7
Syntaxe incorrecte vers '@Num'.
Msg 137, Niveau 15, État 2, Procédure sf_GetLibStatut, Ligne 15
La variable scalaire "@Num" doit être déclarée.
Msg 137, Niveau 15, État 2, Procédure sf_GetLibStatut, Ligne 17
La variable scalaire "@LibStat" doit être déclarée.

Merci de m'aidé.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 janv. 2008 à 15:17
Je ne connais pas du tout ce language, mais t'apres ce que j'en comprends je pense qu'il faudrait déclarer tes variables (si ce sont bien des variables ^^) dans la fonction, notament le @num :

CREATE FUNCTION sf_GetLibStatut
RETURNS varchar(15);
AS
BEGIN
Declare @LibStat varchar(15);
Declare @Num int

Select @LibStat = Lib
FROM TABLE
WHERE IdStatut = @Num;

RETURN @LibStat
END


Ensuite je ne sais pas à quoi correspond le AS, mais en mysql ca sert à définir le libellé d'un champ retourné, donc je ne vois pas trop ce que ca vient faire là, je l'oterai pour voir :D

En espérant qu'un adepte du SQL serveur passe par là pour toi ^^
0
Adorien Messages postés 1 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008
23 avril 2008 à 12:37
Bonjour,

J'ignore si tu as réussi à résoudre ton problème, mais je pense pouvoir t'apporter un peu d'aide.

1°. Mettre des parenthèses autour de tes paramètres

CREATE FUNCTION sf_GetLibStatut
(@Num int)

2°. Supprimer les points-virgule après l'instruction RETURNS
RETURNS varchar(15)

Bonne chance !
0