| From: | "Marc Mamin" <M(dot)Mamin(at)intershop(dot)de> |
|---|---|
| To: | <pgsql-general(at)postgresql(dot)org> |
| Subject: | COPY FROM (query) in plpgsql |
| Date: | 2011-08-23 09:29:17 |
| Message-ID: | C4DAC901169B624F933534A26ED7DF310861B03E@JENMAIL01.ad.intershop.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Hello,
there seems to be no way to use COPY this way, so I guess this is a
feature request...
this may also help users who tried using COPY FROM STDIN in plpgsql.
I have a query with a lot of string manipulation that returns data as
single strings, e.g.:
'a,12,ght,45,1.2'
'b,13,ght,45,1.1'
'a,14,ght,45,1.5'
in order to save this result into a table, I still need to quote the
string value and use EXECUTE:
EXECUTE 'insert into foo values (''a'',12,''ght'',45,1.2)';
EXECUTE 'insert into foo values (''b'',13,''ght'',45,1.1)';
EXECUTE 'insert into foo values (''a'',14,''ght'',45,1.5)';
(or
EXECUTE 'insert into foo VALUES
(''a'',12,''ght'',45,1.2),
(''b'',13,''ght'',45,1.1),
(''a'',14,''ght'',45,1.5)
';
)
I guess this could become faster with such a syntax:
COPY foo FROM
(
SELECT 'a,12,ght,45,1.2'
UNION ALL
SELECT 'b,13,ght,45,1.1'
UNION ALL
SELECT 'a,14,ght,45,1.5'
) WITH CSV;
best regards,
Marc Mamin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ray Stell | 2011-08-23 11:14:15 | Re: Wal archiving and streaming replication |
| Previous Message | alexondi | 2011-08-23 09:01:10 | Wal archiving and streaming replication |