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

Requêtes PostgreSQL Discussion :

Utiliser des bind variables avec PgSql


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut Utiliser des bind variables avec PgSql
    Bonjour à tous.

    Je débute avec PgSql.
    J'ai cherché longtemps mais je n'ai pas trouvé le moyen d'utiliser des bind variables.
    Pourriez vous m'aider?

    Merci.
    " ... On naît, on vit, on meurt, mais exister est un honneur ... "

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Dans l'interpréteur psql on peut uiliser prepare/execute/deallocate et les variables sont représentées par $1, $2, etc...
    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    d=> prepare sel as select uid from users where name=$1;
    PREPARE
    d=> execute sel('titi');
     uid 
    -----
    (0 rows)
     
    d=> execute sel('toto');
     uid 
    -----
       6
    (1 row)
    d=> deallocate sel;
    DEALLOCATE
    Si c'est plutôt dans une librairie appelée via un langage de programmation, chacune a ses méthodes particulières.

  3. #3
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Si je veux l'utiliser dans une fonction,comment je fais?
    Par exemple avec oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    create or replace procedure test(p_param varchar2)
        v_req varchar2(128);
        v_result varchar2(128);
    begin
        v_req := 'select colonne1 from table where colonne2 = :1';
        execute immediate v_req into v_result using p_param;
    end;
    " ... On naît, on vit, on meurt, mais exister est un honneur ... "

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    En plpgsql, pour les requêtes dynamiques lancées par EXECUTE similaires à l'exemple oracle, à ma connaissance pas de bind possible.
    Il faut injecter les valeurs dans le texte de la requête lui-même, voir l'exemple dans la doc de plpgsql sur la commande EXECUTE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    EXECUTE 'UPDATE tbl SET '
            || quote_ident(colname)
            || ' = '
            || quote_literal(newvalue)
            || ' WHERE key = '
            || quote_literal(keyvalue);

Discussions similaires

  1. Utilisation automatiques des bind variables ?
    Par Zidmann dans le forum PL/SQL
    Réponses: 3
    Dernier message: 05/06/2013, 17h03
  2. Utilisation des "bin variable"
    Par sygale dans le forum SQL
    Réponses: 8
    Dernier message: 21/09/2006, 11h48
  3. Utilisation des contrôles Window avec C# et DirectX
    Par OpenGG dans le forum DirectX
    Réponses: 11
    Dernier message: 13/07/2006, 11h53
  4. Peut on utiliser des Webservices WinDEV avec PHP ?
    Par budiste dans le forum WebDev
    Réponses: 8
    Dernier message: 30/03/2006, 11h56
  5. Utilisation d'une variable avec l'instruction 'USE'
    Par florantanplan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/11/2005, 10h39

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