Rechercher : dans
Par :

[SQL] Erreur syntaxe dans fonction

Dernière réponse le 23 avr 2008 à 12:37:02 SuzukMan, le 9 jan 2008 à 14:51:05 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « [SQL] Erreur syntaxe dans fonction » dans :
Erreur Vista : Fonction MS-DOS non valide VoirVous souhaitez supprimer un fichier et Microsoft Vista dans son rôle d'ange-gardien de vos données vous en empêche en vous affichant des messages comiques du type : Copier le fichier - Une erreur inattendue bloque cette opération. Notez le code...
Télécharger Notepad2 VoirNotepad2 est un bloc-note sans installation libre possédant des fonctionnalités avancées de coloration syntaxique. Fonctionnalités Coloration syntaxique pour les langages suivants : HTML, XML, PHP, ASP (JScript, VBS), CSS, JavaScript, VBScript,...
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...
PL/SQL - Introduction au langage PL/SQL VoirIntroduction au langage PL/SQL Le langage PL/SQL est un langage L4G (entendez par ce terme un langage de quatrième génération), fournissant une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le langage SQL en lui...
Oracle - Les requêtes hiérarchiques VoirCet article se base sur des tests et recherches réalisés dans la version 8.1.5 d'Oracle. Introduction Tout au long de cet article, nous allons nous intéresser à une structure de données permettant de créer un Forum de discussion, matérialisé par...

1

kij_82, le 9 jan 2008 à 14:56:48

C'est quoi le libellé de l'erreur lorsque tu tente d'exécuter cette fonction ?

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

2

SuzukMan, le 9 jan 2008 à 15:08:17

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é.

Répondre à SuzukMan

3

kij_82, le 9 jan 2008 à 15:17:23

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 ^^

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

4

 Adorien, le 23 avr 2008 à 12:37:02

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 !

Répondre à Adorien