Comment concaténer des variables psql?


8

Comment puis-je concaténer deux variables psql (client PostgreSQL)? Je veux générer un chemin absolu en concaténant une variable de chemin de répertoire et une variable de nom de fichier.

J'ai essayé ça:

\set path '/tmp/'
\set file 'foo'
\echo :path:file

Mais psql place un espace entre le chemin et le fichier, et affiche:

/tmp/ foo

Réponses:


8
\set path '/tmp/'
\set file 'foo'
\set pf :path:file \echo :pf
/tmp/foo

Pourquoi ça marche? Je cite le manuel ici :

\ set [nom [valeur [...]]]

Définit le nom de la variable interne sur valeur ou, si plusieurs valeurs sont données, sur la concaténation de toutes . [...]

Je souligne.


1
Encore mieux que le mien
dezso

4

Essaye ça:

\set path /tmp/
\set file foo
\qecho :path:file \o | sed s/\ //
/tmp/foo

\qechoécrit sur le canal de sortie de la requête (contrairement à \echoce qui est écrit sur la sortie standard). \o |redirige ensuite la sortie vers la commande suivante.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.