Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

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: Thu, 25 Aug 2005 16:55:55 -0700
  • Message-id: <200508251655.55679.scrawford@pinpointresearch.com> <text/plain>

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




Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group