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 :

[Oracle8] Passage de paramètres dans le in


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut [Oracle8] Passage de paramètres dans le in
    Bonjour,
    j'aimerai connaitre (si possible) la syntaxe permettant d'attribuer les valeurs des paramètres dans la clause in, par exemple dans la requête ci_dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select * 
    from matable
    where monparam in :valeurs_param
    Si je veux avoir par exemple deux valeurs de monparam, comment les affecter.
    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 88
    Par défaut
    Salut,

    Tu devrais essayer quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM matable
    WHERE monparam IN (valeur_param1, valeur_param2,...)
    @+

  3. #3
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut
    Citation Envoyé par Hannubis
    Salut,

    Tu devrais essayer quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM matable
    WHERE monparam IN (valeur_param1, valeur_param2,...)
    @+
    C'est justement ce que je voulais éviter !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 88
    Par défaut
    Ah c'est pas de chance ... Sinon il faut essayer de faire passer une sous requete dans le IN qui renvoie les deux valeur que tu veux...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM matable
    WHERE monparam IN (SELECT * FROM matable_2 WHERE ...)
    @+

  5. #5
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut
    Citation Envoyé par Hannubis
    Ah c'est pas de chance ... Sinon il faut essayer de faire passer une sous requete dans le IN qui renvoie les deux valeur que tu veux...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM matable
    WHERE monparam IN (SELECT * FROM matable_2 WHERE ...)
    @+
    Non, c'est pas encore ça que je voudrais, merci quand même....
    Je ne sais pas si je suis clair, mais la syntaxe sql doit rester si possible identique à mon exemple, c'est l'affectation du paramètre qui me pose un soucis !

  6. #6
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Quel est ton SGBD ?

    Par quel moyen veux-tu rentrer ces paramètre ? En exécutant un script, puis via un prompt, j'imagine ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  7. #7
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut
    Je suis sous Oracle 8, j'aimerai affecter la valeur du paramètre par exemple sous Delphi, on peut coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query.parambyname('Monparam').asstring := 'param1,param2,...'

  8. #8
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Je serais toi, je posterais ce genre de question sur le forum Delphi alors, car ce n'est pas la syntaxe SQL qui te pose problème, mais bien le passage de paramètre via le langage de ton interface graphique ... Veux-tu que je déplace ton sujet ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  9. #9
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut
    Citation Envoyé par Xo
    Je serais toi, je posterais ce genre de question sur le forum Delphi alors, car ce n'est pas la syntaxe SQL qui te pose problème, mais bien le passage de paramètre via le langage de ton interface graphique ... Veux-tu que je déplace ton sujet ?
    Je voudrais aussi bien le faire dans n'importe quel langage...
    Le passage de paramètres est du pur SQL !
    Peut être Sqlpro aurait eu une réponse, ou bien alors je poste sur le forum Oracle ?

  10. #10
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    OK, je laisse ici alors

    En ce qui concerne le passage de paramètres en SQL, si le nombre de valeurs à passer est dynamique, je ne vois pas d'autres solutions que de passer par une fonction stockée qui renverrait alors un curseur. Mais je laisse le soin à d'autres de réagir sur le sujet si ils ont des idées ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  11. #11
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut
    Je pense avoir trouvé la solution, je ne sais pas si c'est spécifique à Oracle, mais on peut définir des paramètres de subsitution avec '&',
    le code devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select * 
    from matable 
    where monparam in &valeurs_param
    on peut donc mettre comme valeur de paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeurs_param := '(par1,par2,par3....)'

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

Discussions similaires

  1. passage de paramètre dans un LIKE
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2006, 16h04
  2. passage de paramètres dans l'invite de commande
    Par mr_neness dans le forum Langage
    Réponses: 10
    Dernier message: 18/11/2005, 15h01
  3. Passage de paramètres dans champ hidden
    Par benassis dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/05/2005, 01h22
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46

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