From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> |
---|---|
To: | "fred" <caluga(at)free(dot)fr> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: delimiter à vide |
Date: | 2017-11-15 15:17:11 |
Message-ID: | 06f0aec2-eb2c-4282-a6b4-a9ba41c21128@manitou-mail.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
fred wrote:
> 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
Ca ne passe pas parce que \copy comme les autres
méta-commandes ne peut pas s'étaler plusieurs lignes.
Il suffirait d'utiliser directement un SELECT, ou si on veut
vraiment, un COPY TO STDOUT.
Mais en fait pour un export COPY n'a d'intérêt par rapport à
SELECT que si on veut du format CSV, ou des données rechargeables
par le même COPY dans l'autre sens.
Ici il a d'autant moins d'intérêt que, pour rester sur le sujet de
départ, il n'accepte tout bêtement pas de délimiteur vide:
#= COPY (select 'ab','cd') to stdout delimiter ''
ERROR: COPY delimiter must be a single one-byte character
alors que c'est possible avec SELECT:
#= \t \a \pset fieldsep ''
#= SELECT 'ab','cd';
abcd
Cordialement,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite
--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)
From | Date | Subject | |
---|---|---|---|
Next Message | Damien Clochard | 2017-11-20 00:29:12 | [pgsql-fr-generale] [Paris OSS 2017] Préparation |
Previous Message | fred | 2017-11-14 22:45:55 | Re: delimiter à vide |