banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 smile.
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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

 

Pied de page des forums

Powered by FluxBB