IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

fonction avec 2 parametres qui me renvoie un int


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Points : 127
    Points
    127
    Par défaut fonction avec 2 parametres qui me renvoie un int
    Bonjour,

    Voila, je voudrais créer une fonction qui me permet de renvoyer le nombre maximum d'un champ, à l'aide de 2 parametres : la table et le champ. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE FUNCTION idMax (@champ VARCHAR(20), @tab VARCHAR(20))
    	RETURNS INT
    	BEGIN
    		DECLARE @id INT
    	             SELECT @id=MAX(@champ) FROM @tab
    		RETURN @id
    	END
    code simple rien de compliqué, mais ceci me renvoie une erreur (donc ça se complique ).
    Et voici l'erreur :
    Msg*1087, Niveau*15, État*2, Procédure*idMax, Ligne*5
    La variable de table '@tab' doit être déclarée.
    @tab est un parametre , où est le problème ?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Points : 127
    Points
    127
    Par défaut
    j'ai deja consulter cette page, ellen'apporte pas solution à mon problème qui est de savoir pourquoi on me demande de déclarer le parametre.

    Merci quand meme .

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    En lisant cette page, j'aurai écrit la fonction ainsi.
    Ce n'est probablement pas parfait mais ça devrait fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE FUNCTION idMax (@champ as VARCHAR(20), @tab as VARCHAR(20))
    	RETURNS INT
    	BEGIN
     
            DECLARE @id INT
            DECLARE @sql NVARCHAR(256)
            SET @sql = 'SELECT MAX(' + @champ + ') FROM ' + @tab
     
            EXEC dbo.sp_executeSQL @sql
    		RETURN @id
        END

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Points : 127
    Points
    127
    Par défaut
    Merci pour ta réponse, je teste je te tien au courant mais peut tu m'expliquer ce que veut dire
    EXEC dbo.sp_executeSQL @sql

Discussions similaires

  1. Fonction dans une boucle qui ne renvoie rien
    Par blueice dans le forum Langage
    Réponses: 9
    Dernier message: 16/08/2008, 09h46
  2. Réponses: 9
    Dernier message: 15/05/2007, 13h41
  3. fonction avec 2 parametre en reour
    Par franfr57 dans le forum ASP
    Réponses: 3
    Dernier message: 09/03/2007, 21h38
  4. fonction avec 2 parametres tableaux
    Par mquentin dans le forum Langage
    Réponses: 2
    Dernier message: 21/12/2006, 18h54
  5. Réponses: 8
    Dernier message: 02/02/2006, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo