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

MS SQL Server Discussion :

[proc stockée][sqlserver2k] pb MonChamp IN @Mesvaleurs


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Par défaut [proc stockée][sqlserver2k] pb MonChamp IN @Mesvaleurs
    Bonjour, je souhaite effectuer une requete du type suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE PROCEDURE MaProcedure
    (
    @mavariable AS VARCHAR(100)
    )
     
    AS
     
    --CHAMP1 est de type int
    SELECT * 
    FROM MATABLE
    WHERE CHAMP1 IN (@mavariable)
    J'ai regardé sur ma bible SQL sqlpro.developpez.com (non non ce n'est pas du leche botte c'est vraiment ma référence, d'ailleur merci à l'auteur),
    la syntaxe semble correcte mais le résultat est utilisation d'une valeur de type incorrecte...
    J'ai tenté plusieurs syntaxes, avec ou sans cotes, avec doubles cotes, un petit
    CAST en Int (on ne sais jamais), un cast en varchar de CHAMP1 etc.. rien ne passe...


    Quelqu'un a t il la solution ?
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Par défaut
    Désolé j'ai eu le meme problème et la seule solution que j'ai trouvé c'est de casser certaines tables et de réécrire autrement. Mais c'est clair que je suis preneur si quelqu'un à la réponse

  3. #3
    Membre chevronné
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Par défaut
    Slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EXEC('
    SELECT * 
    FROM MATABLE 
    WHERE CHAMP1 IN ('  + @mavariable + ')' )
    a+

  4. #4
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Par défaut
    Citation Envoyé par Gandalf Le Blanc
    Slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EXEC('
    SELECT * 
    FROM MATABLE 
    WHERE CHAMP1 IN ('  + @mavariable + ')' )
    a+
    J'y ai pensé mais j'avais pensé a ça en mettant dans une chaine de carcatere or si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @temp="SELECT * 
    FROM MATABLE 
    WHERE CHAMP1 IN ('  + @mavariable + ')' )"
    EXEC @temp
    Je suis limité a 128 caractères (si je ne me trompe pas). Est ce que sans passer par une variable temporaire (comme dans l'exemple ci dessus) je me libère de la contrainte des 128 caracteres ? (et oui, ma requete est un peu grosse )

  5. #5
    Membre chevronné
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Par défaut
    Slt,

    Exec prend une chaine de caracteres, les chaines sont limitees a 8000 caracteres sous SQL 2000 donc t'as un peu de marge.

    Sinon tu decoupe ta chaine passee en parametre et tu la stocke dans une table temporaire a une colonne, apres tu fais une jointure sur celle ci dans ta requete.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Par défaut
    Ok merci, en effet, ça devrait suffire

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

Discussions similaires

  1. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  2. Lancement d'un shell Unix dans un proc stockée
    Par SBA03 dans le forum Oracle
    Réponses: 20
    Dernier message: 31/08/2006, 09h22
  3. Réponses: 15
    Dernier message: 08/07/2004, 08h20
  4. [MSDE 2000] Récup champ text depuis proc stockée
    Par Air'V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/12/2003, 19h47
  5. Réponses: 2
    Dernier message: 16/10/2003, 17h17

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