Annonce
Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).
En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.
#1 Mon 19 June 2017 16:54
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 210
[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: 1129
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: 1129
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: 1534
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: 210
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