Обсуждение: How do I copy an element of composite type array into csv file?
Hi suppose I have composite type and table
create type A as(
x float8,
y float8
);
create table B(
Ay A[]
);
insert into B
values(array[
(1,2)::A,
(3,4)::B]
);
Now I would like to export the first element of table B into an csv file:
COPY B(Ay[1])
to 'E:/products_199.csv' DELIMITER ',' CSV HEADER;
The code above reported an syntax error.
How should I do it??
Thank you so much!
Shore
On Wed, May 23, 2018 at 2:05 PM, a <372660931@qq.com> wrote: > Hi suppose I have composite type and table > > create type A as( > x float8, > y float8 > ); > > create table B( > Ay A[] > ); > > insert into B > values(array[ > (1,2)::A, > (3,4)::B] > ); > > Now I would like to export the first element of table B into an csv file: > > COPY B(Ay[1]) > to 'E:/products_199.csv' DELIMITER ',' CSV HEADER; > > The code above reported an syntax error. > > How should I do it?? > Try COPY (SELECT Ay[1] FROM B) to 'E:/products_199.csv' DELIMITER ',' CSV HEADER; Regards, Amul
Thank you very much.
BTW, may I ask if I would like to do the opposite that copy csv file content into the first element, how should I do it??
COPY B(Ay[1])
from 'E:/products_199.csv' DELIMITER ',' CSV HEADER;
from 'E:/products_199.csv' DELIMITER ',' CSV HEADER;
------------------ Original ------------------
From: "amul sul";<sulamul@gmail.com>;
Send time: Wednesday, May 23, 2018 5:11 PM
To: "a"<372660931@qq.com>;
Cc: "pgsql-general"<pgsql-general@postgresql.org>;
Subject: Re: How do I copy an element of composite type array into csv file?
> Hi suppose I have composite type and table
>
> create type A as(
> x float8,
> y float8
> );
>
> create table B(
> Ay A[]
> );
>
> insert into B
> values(array[
> (1,2)::A,
> (3,4)::B]
> );
>
> Now I would like to export the first element of table B into an csv file:
>
> COPY B(Ay[1])
> to 'E:/products_199.csv' DELIMITER ',' CSV HEADER;
>
> The code above reported an syntax error.
>
> How should I do it??
>
Try COPY (SELECT Ay[1] FROM B) to 'E:/products_199.csv' DELIMITER ','
CSV HEADER;
Regards,
Amul
On Wednesday, May 23, 2018, a <372660931@qq.com> wrote:
Thank you very much.BTW, may I ask if I would like to do the opposite that copy csv file content into the first element, how should I do it??COPY B(Ay[1])
from 'E:/products_199.csv' DELIMITER ',' CSV HEADER;
you cannot put "[1]" there. The csv file value has to be an array input literal with only one element. i.e., something like: {(1,2)}
There is no first element as such when you are creating a new record. There will be however many elelements to supply to the array input.
David J.
Thank you so much, did you mean the section 8.15.6??
On Wednesday, May 23, 2018, a <372660931@qq.com> wrote:
------------------ Original message ------------------
From: "David G. Johnston";
Sendtime: Wednesday, May 23, 2018 9:18 PM
To: "a"<372660931@qq.com>;
Cc: "amul sul"; "pgsql-general";
Subject: How do I copy an element of composite type array into csv file?
Thank you very much.BTW, may I ask if I would like to do the opposite that copy csv file content into the first element, how should I do it??COPY B(Ay[1])
from 'E:/products_199.csv' DELIMITER ',' CSV HEADER;
you cannot put "[1]" there. The csv file value has to be an array input literal with only one element. i.e., something like: {(1,2)}
There is no first element as such when you are creating a new record. There will be however many elelements to supply to the array input.
David J.
Thank you so much, did you mean the section 8.15.6??
Yes.