From: | Sam Mason <sam(at)samason(dot)me(dot)uk> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: No quotes in output of "psql \copy CSV" |
Date: | 2010-06-29 12:40:39 |
Message-ID: | 20100629124039.GC7584@samason.me.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, Jun 29, 2010 at 02:24:00PM +0200, Arnaud Lesauvage wrote:
> I'd like to generate CSV files from the output of a query.
> I can't get the srings in the output to be quoted though. I thought that
> this was the default for CSV, and even adding the "QUOTE" parameter does
> not help :
>
> postgres=# \copy (SELECT 1, 'test', 'foo', 'bar', TRUE, FALSE) TO stdout
> CSV QUOTE '"' DELIMITER ','
> 1,test,foo,bar,t,f
>
> What am I missing here ?
By default values are only quoted when they need to be, i.e. if they
contain a quote, comma and a few other characters. This is very common
behavior and all the programs I've tried to use the resulting files with
have been fine with it.
If you really want all values to be quoted you can include the "FORCE
QUOTE" option, i.e:
copy (SELECT 1 AS a, 'a' AS b) TO stdout WITH CSV HEADER FORCE QUOTE a,b;
--
Sam http://samason.me.uk/
From | Date | Subject | |
---|---|---|---|
Next Message | Scott Marlowe | 2010-06-29 12:49:28 | Re: alter table schema, default sequences stay the same |
Previous Message | Arnaud Lesauvage | 2010-06-29 12:24:00 | No quotes in output of "psql \copy CSV" |