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

SQL Procédural MySQL Discussion :

[Procédure stocké] - Liste de valeurs dans un seul paramètre


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 10
    Points
    10
    Par défaut [Procédure stocké] - Liste de valeurs dans un seul paramètre
    Bonjour,

    Je cherche à passer une collection de valeurs à une procédure stocké mysql.
    un exemple tout simple, voila une procédure (qui ne sert a rien, juste pour l'example) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create procedure test (param varchar(255),out test INT)
    SQL security invoker
    begin
    SET NAMES 'latin1';
    select count(*) into test from toto where tutu in (param);
    end;
    lors de l'appel, "param" vaut "5,7,3". Or mysql exécute bien la requête, sauf qu'il ne prend en compte que la première valeur de "param" et le count me renvoie 1 au lieu de 3.

    On dirais qu'il s'arrête à la première virgule. J'ai fais pas mal de recherche, et je n'ai pas trouver de paramètre de type Array comme en postgresql entre autre. Bien évidement je ne peut pas séparé les variable et construire le in avec, car le nombre de valeur est dynamique.

    Y'a t'il un moyen pour utiliser une série de valeurs séparé par des virgules en paramètre d'une procédure ? ou y'a t'il un autre moyen qu'un VARCHAR pour passé une collection de valeurs ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    regarde du côté de MAKE_SET, FIND_IN_SET et autres fonctions SET.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Merci Antoun, mais en fait j'ai trouver autrement !

    Il faut mettre la requête dans une variable a l'intérieur de la procédure stocké, la concaténé avec le parametre a mettre dans le IN, et executer le tout avec un prepare statement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/10/2010, 21h55
  2. Procédure stockée variable à plusieurs valeurs dans varchar
    Par didier.M dans le forum Développement
    Réponses: 2
    Dernier message: 18/06/2010, 11h36
  3. liste des valeur dans grille de paramètre
    Par racha dans le forum Reports
    Réponses: 1
    Dernier message: 05/04/2008, 19h17
  4. Procédure stockée : liste des serveurs SQL disponibles
    Par AF_STjohn dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/06/2005, 20h11
  5. [VB.Net]Procédure Stocké retournant une valeur
    Par waldo2188 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/05/2005, 12h56

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