From: | fred <caluga(at)free(dot)fr> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: delimiter à vide |
Date: | 2017-11-14 22:41:08 |
Message-ID: | 136a9bda-2c21-977f-78cd-a144d3c1591b@free.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Le 14/11/2017 à 14:10, Daniel Verite a écrit :
> fred wrote:
>
>> _comment faire une extraction de données avec psql et ne pas avoir de
>> délimiteur ?_
> -F avec une chaîne vide et un SELECT au lieu d'un \copy
> Ou si déjà dans psql, \pset fieldsep ''
>
> Pour l'autre question de passer une requête compliquée
> à l'option -c, il y a l'alternative de la passer en entrée
> standard via la syntaxe heredoc en shell,
> cf http://tldp.org/LDP/abs/html/here-docs.html
>
> psql [options] << 'EOF'
> ..commandes compliquées...
> EOF
>
> L'autre intérêt de cette méthode est que la requête peut
> prendre plusieurs lignes.
>
> Cordialement,
j'ai essayé ceci (mais j'ai une erreur) :
psql << 'EOF'
\copy (
select format('if (identifiant == "%s") {mail = "%s"};', identifiant, mail)
from matable
where substring(identifiant from 1 for 3) = 'dud'
order by identifiant)
to '/tmp/mail';
EOF
sed 's/dud/tot/g' /tmp/mail
donc j'ai fais (qui fonctionne):
echo " \copy (select format('if (identifiant == "%s") {mail = "%s"};',
identifiant, mail) \
from matable where substring(identifiant from 1 for 3) = 'dud' order by
identifiant) to '/tmp/mail'; " | psql
sed 's/dud/tot/g' /tmp/mail
pour finalement faire à peu de chose pareil mais en me servant de STDOUT :
echo " \copy (select format('if (identifiant == "%s") {mail = "%s"};',
identifiant, mail) \
from matable where substring(identifiant from 1 for 3) = 'dud' order by
identifiant) to STDOUT; " | psql | sed 's/dud/dug/g' /tmp/mail
Merci à tous.
PS : Je suis sur que cela va servir à d'autres.
caluga
--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)
From | Date | Subject | |
---|---|---|---|
Next Message | fred | 2017-11-14 22:45:55 | Re: delimiter à vide |
Previous Message | fred | 2017-11-14 22:22:46 | Re: delimiter à vide |