| 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: | Whole Thread | Raw Message | 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 |