Re: delimiter à vide

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)

In response to

Responses

Browse pgsql-fr-generale by date

  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