[SQL] Erreur syntaxe dans fonction

SuzukMan Messages postés 38 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
A voir également:

4 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
C'est quoi le libellé de l'erreur lorsque tu tente d'exécuter cette fonction ?
0
SuzukMan Messages postés 38 Statut Membre 1
 
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 4260 Statut Contributeur 857
 
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 Statut Membre
 
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