Re: No quotes in output of "psql \copy CSV"
От | Arnaud Lesauvage |
---|---|
Тема | Re: No quotes in output of "psql \copy CSV" |
Дата | |
Msg-id | 4C29EDE3.9080000@codata.eu обсуждение исходный текст |
Ответ на | Re: No quotes in output of "psql \copy CSV" (Sam Mason <sam@samason.me.uk>) |
Список | pgsql-general |
Le 29/06/2010 14:40, Sam Mason a écrit : > 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; Oh indeed ! As a matter of fact, I don't even need to force the output to be quoted. I just expected it to be so I thought there was an error. But after trying with a string containing a comma, I do indeed so that the string is quoted. Thanks a lot Sam. Regards -- Arnaud Lesauvage
В списке pgsql-general по дате отправления: