On 18 September 2014 16:06, David Rysdam <drysdam@xxxxxxxxxx> wrote:
I've got a some tables with bytea fields that I want to export only the
binary data to files. (Each field has a gzipped data file.)
I really want to avoid adding overhead to my project by writing a
special program to do this, so I'm trying to do it from psql. Omitting
the obvious switches for username, etc, here's what I'm doing:
psql -t -c "\copy (select mybinaryfield from mytable where key = 1) to
'file'"
That works, but I get escaped bytes. I want actual binary directly out
of the DB. Another option might be:
psql -t -c "\copy (select mybinaryfield from mytable where key = 1) to
'file'" with format binary
However, there are two problems. First, I get an syntax error "at or
near 'format'". (Running 9.2 client and server.) And second, I suspect
that'll be some "proprietary" PG format, not the actual bytes from just
my field.
What option am I missing?
Hi,
first of all "with format binary" must be a part of the -c command, not part of the shell command.
first of all "with format binary" must be a part of the -c command, not part of the shell command.
I don't know why this doesn't work:
psql -t -c "\copy (select mybinaryfield from mytable where key = 1) to 'file' with format binary "
psql -t -c "\copy (select mybinaryfield from mytable where key = 1) to 'file' with format binary "
but this works for me:
psql -t -c "\copy (select mybinaryfield from mytable where key = 1) to 'file' binary "
regards,
Szymon
Szymon