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 Oracle Discussion :

Utiliser plusieurs fois la même bind variable dans un using


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Utiliser plusieurs fois la même bind variable dans un using
    Dans mon code j'ai une requête qui a besoin de s'exécuter avec plusieurs fois la même variable ; j'aurais aimé savoir si c'était possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    req := 'SELECT poid_id0, poid_type 
    FROM bill_t@to_db2 
    WHERE account_obj_id0 = :1
      OR billinfo_obj_id0 = :1
      OR ar_billinfo_obj_id0 = :1
      OR parent_billinfo_obj_id0 = :1
      OR invoice_obj_id0 = :1
      OR parent_id0 = :1';
    EXECUTE IMMEDIATE req
     USING 508923,508923,508923,508923,508923,508923;
    sachant que les clauses where sont construites de manière automatique et donc je ne connais pas le nombre de :1 à l'avance.(içi c'est un test et je les ai comptées à la main)

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Quelle est votre version d'Oracle ?
    Est-ce que ce que vous cherchez c’est une solution pour des requêtes SQL dynamiques avec un nombre variable de liaison dans les clauses Where ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    ma version d'oracle est la 10g.

    ce que je voudrais c'est ne mettre qu'une seul fois ma variable après le using peut importe le nombre de ':1'

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Vous aller trouver la réponse dans le paragraphe : Using Duplicate Placeholders with Dynamic SQL

  5. #5
    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 386
    Points
    18 386
    Par défaut
    Pour ce cas de figure précis, vous pouvez aussi simplement réécrire la requête ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    req :=  'SELECT poid_id0, poid_type 
               FROM bill_t@to_db2 
              WHERE :1 IN (account_obj_id0, billinfo_obj_id0, ar_billinfo_obj_id0,
                           parent_billinfo_obj_id0, invoice_obj_id0, parent_id0)';
     
    EXECUTE IMMEDIATE req USING 508923;

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci j'avais pas pensé a cette solution

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

Discussions similaires

  1. [Plugin] Utiliser plusieurs fois je même jqgrid dans une page
    Par Christophe Charron dans le forum jQuery
    Réponses: 0
    Dernier message: 06/10/2012, 17h26
  2. utiliser plusieurs fois la même animation jquery
    Par artenis dans le forum jQuery
    Réponses: 13
    Dernier message: 07/07/2011, 23h52
  3. Utiliser plusieurs fois une même fonction
    Par ledisciple dans le forum Langage
    Réponses: 20
    Dernier message: 13/02/2010, 12h47
  4. Réponses: 3
    Dernier message: 21/08/2008, 22h30
  5. Utiliser plusieurs fois le même composant
    Par Ren97 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/03/2008, 01h49

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