Re: delimiter à vide

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)

In response to

Browse pgsql-fr-generale by date

  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