[SQL] Erreur syntaxe dans fonction
SuzukMan
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
Adorien Messages postés 1 Statut Membre -
Adorien Messages postés 1 Statut Membre -
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
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
Configuration: Windows XP Internet Explorer 6.0
4 réponses
-
C'est quoi le libellé de l'erreur lorsque tu tente d'exécuter cette fonction ?
-
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é. -
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 ^^
-
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 !