#1 Mon 19 June 2017 16:54
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 211
[postgresql 9.3] utilisation de variable utilisateur
Bonjour,
J'ai une requête simple :
Code:
select * from t_communes where insee_com like '54%' ;
Je voudrais remplacer le 54 par une variable "dept" utilisée uniquement pour cette requête que je modifierais avant exécution.
la déclaration : set dept = '57'; semble fonctionner
mais je n'arrive pas utiliser la variable.
Cordialement,
Romary
Hors ligne
#2 Mon 19 June 2017 17:08
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [postgresql 9.3] utilisation de variable utilisateur
Salut,
Il vous faut une procédure stockée, voir ce sujet sur la liste postgresql fr
Dernière modification par tumasgiu (Mon 19 June 2017 17:14)
Hors ligne
#3 Mon 19 June 2017 17:19
Re: [postgresql 9.3] utilisation de variable utilisateur
Je vais contredire Tumasgiu :p
psql permet l'utilisation de variable :
Code:
set dept = '57'; select * from t_communes where insee_com like ':dept:%' ;
De mémoire.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Mon 19 June 2017 17:24
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [postgresql 9.3] utilisation de variable utilisateur
Merci du tuyau .
C'est pas mal, on peut donc utiliser des variables
dans des scripts SQL ?
Dernière modification par tumasgiu (Mon 19 June 2017 17:26)
Hors ligne
#5 Mon 19 June 2017 17:51
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [postgresql 9.3] utilisation de variable utilisateur
Oui tout a fait, et les setter en ligne de commande avant d'appeler le script, aussi, ce qui est pratique:
https://stackoverflow.com/questions/738 … mmand-line
Nicolas
Hors ligne
#6 Tue 20 June 2017 08:52
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 211
Re: [postgresql 9.3] utilisation de variable utilisateur
Cela ne fonctionne pas Yves.
Cela donne un Etat SQL 42704 avec l'erreur : paramètre de configuration "dept" non reconnu.
Ry
Hors ligne
#7 Tue 20 June 2017 09:32
Re: [postgresql 9.3] utilisation de variable utilisateur
Voici la commande correcte (j'ai vérifié cette fois ci) :
Code:
\set commune '281' [..] WHERE commune = :commune);
Attention : ca ne marche que sous psql.
La commande SQL SET ne sert qu'à modifier une variable pour la config du serveur (search_path, etc.).
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne