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.
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 ... "
Dans l'interpréteur psql on peut uiliser prepare/execute/deallocate et les variables sont représentées par $1, $2, etc...
Exemple:
Si c'est plutôt dans une librairie appelée via un langage de programmation, chacune a ses méthodes particulières.
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 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 ... "
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);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager