Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9853
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: 1129

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: 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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9853
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