From: | Edmund Bacon <ebacon(at)onesystem(dot)com> |
---|---|
To: | pgsql-interfaces <pgsql-interfaces(at)postgresql(dot)org> |
Subject: | ECPG and COPY TO STDOUT |
Date: | 2004-04-01 19:22:44 |
Message-ID: | 1080847364.13873.14.camel@elb_lx.onesystem.ca |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
If I use COPY TO STDOUT in an ECPG program, where does the output go?
If I use COPY TO '/tmp/foo', I get the file created, with the data in
it, but trying COPY TO STDOUT produces no output.
What I'm trying to do is to dump a table's data, and have the resulting
file owned by the application user rather than the dba user.
I would rather to not have to create the file in /tmp, copy contents, rm
/tmp file, if I don't have to.
This is the program I'm using:
#include <stdio.h>
EXEC SQL INCLUDE sqlca;
EXEC SQL WHENEVER SQLERROR sqlprint;
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char *fname = "/tmp/foo";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO test;
/* produces expected file "/tmp/foo" */
EXEC SQL COPY foo TO :fname WITH DELIMITER ',';
printf("copy to /tmp/foo : sqlca.sqlcode = %ld", sqlca.sqlcode);
/* goes nowhere (?) */
EXEC SQL COPY foo TO STDOUT WITH DELIMITER ',';
printf("copy to STDOUT : sqlca.sqlcode = %ld\n", sqlca.sqlcode);
EXEC SQL DISCONNECT;
return 0;
}
--
Edmund Bacon <ebacon(at)onesystem(dot)com>
From | Date | Subject | |
---|---|---|---|
Next Message | Mikhail Ts | 2004-04-02 06:26:16 | PostgreSQL 7.4.2 libpq problem |
Previous Message | Adriaan Joubert | 2004-04-01 08:21:41 | Bug in translation of DEALLOCATE PREPARE |