Re: dumping query results to a csv

From: Steve Crawford <scrawford(at)pinpointresearch(dot)com>
To: David Durham <ddurham(at)vailsys(dot)com>, pgsql-admin(at)postgresql(dot)org
Subject: Re: dumping query results to a csv
Date: 2005-08-25 23:55:55
Message-ID: 200508251655.55679.scrawford@pinpointresearch.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Thursday 25 August 2005 3:24 pm, David Durham wrote:
> This is kind of a pg-admin newbie question, so apologies in
> advance.
>
> Anyway, I'd like to issue a command that dumps the results of a
> query to a txt file in comma delimited format. Does PostgreSQL
> ship with something to do this? I searched the web, but found what
> appeared to be non-free solutions.

Use heredoc notation to set the format to unaligned, set your field
separator (and, if necessary, record separator) to whatever you want,
turn off the footer, and run the output to a file:

psql <any needed connection parameters> --quiet databasename <<EOT
\pset format unaligned
\pset fieldsep ','
\pset footer
\o youroutputfile.csv
select ......
EOT

Or if you prefer everything on the command line:
psql <any needed connection parameters> --quiet --no-align
--field-separator ',' --pset footer --output youroutputfile.csv
--command <select .......> databasename

Optionally add \pset tuples-only (first example) or --tuples-only
(second example) if you do not want the header line with field names
to be included. Note, if you use tuples only, you don't need to turn
off the footer separately. You can also use the short versions of all
the command line switches if you prefer. "man psql"

Cheers,
Steve

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Colin E. Freas 2005-08-26 00:01:59 pgcrypto regression test: how can I change the port?
Previous Message Aldor 2005-08-25 23:50:29 Re: What is syslog:duration reporting ... ?