Posez votre question Signaler

[SQL] Erreur syntaxe dans fonction

SuzukMan 37Messages postés 20 mai 2007Date d'inscription 26 mai 2010Dernière intervention - Dernière réponse le 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
Lire la suite 

[SQL] Erreur syntaxe dans fonction »

4 réponses
Réponse
+0
moins plus
C'est quoi le libellé de l'erreur lorsque tu tente d'exécuter cette fonction ?
Ajouter un commentaire
Réponse
+0
moins plus
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é.
Ajouter un commentaire
Réponse
+0
moins plus
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 ^^
Ajouter un commentaire
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Ce document intitulé « [SQL] Erreur syntaxe dans fonction » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?