Обсуждение: Postgresql - COPY TO - get number row inserted - from JDBC

Поиск
Список
Период
Сортировка

Postgresql - COPY TO - get number row inserted - from JDBC

От
Nicolas Paris
Дата:
Hello !

My goal is to get the result from "COPY TO ..."  query, from JDBC. This query returns : COPY X
(where X is number line inserted)
1) Can I can I consider it useless, since when no error, all lines are suposed to be inserted ?
2) If not useless, how can I get the response "COPY 10" (when 10 rows inserted), I get with psql way, or with pgadmin.

I have tried the int Statement.executeUpdate() method, but it returns 0

Thanks for any help !

Nicolas PARIS

Re: Postgresql - COPY TO - get number row inserted - from JDBC

От
Adrian Klaver
Дата:
On 02/07/2015 06:14 AM, Nicolas Paris wrote:
> Hello !
>
> My goal is to get the result from "COPY TO ..."  query, from JDBC. This
> query returns : COPY X
> (where X is number line inserted)
> 1) Can I can I consider it useless, since when no error, all lines are
> suposed to be inserted ?
> 2) If not useless, how can I get the response "COPY 10" (when 10 rows
> inserted), I get with psql way, or with pgadmin.
>
> I have tried the int Statement.executeUpdate() method, but it returns 0
>
> Thanks for any help !

I am not a Java programmer, but I think what you want is here:

https://jdbc.postgresql.org/documentation/publicapi/index.html

under org.postgresql.copy

>
> Nicolas PARIS


--
Adrian Klaver
adrian.klaver@aklaver.com


Re: Postgresql - COPY TO - get number row inserted - from JDBC

От
Thomas Kellerer
Дата:
Nicolas Paris wrote on 07.02.2015 15:14:
> Hello !
>
> My goal is to get the result from "COPY TO ..."  query, from JDBC. This query returns : COPY X
> (where X is number line inserted)
> 1) Can I can I consider it useless, since when no error, all lines are suposed to be inserted ?
> 2) If not useless, how can I get the response "COPY 10" (when 10 rows inserted), I get with psql way, or with
pgadmin.
>
> I have tried the int Statement.executeUpdate() method, but it returns 0
>
> Thanks for any help !
>
> Nicolas PARIS

I you are using COPY to import a file located on the server, I don't think you'll get that information from JDBC.

But you can use the equivalent to "COPY .. FROM stdin" through JDBC.
And when you do that, you can get the number of rows inserted:

https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/copy/CopyManager.html



Re: Postgresql - COPY TO - get number row inserted - from JDBC

От
Nicolas Paris
Дата:
Thanks Adrian and Thomas. I get it worked with CopyIn(sql, inputstream) method, and then with "FROM STDIN".

If someone interested in ETL Talend software, I actually modified the component "tPostgresqlBulkExec". You can find it there : https://github.com/parisni/tPostgresqlBulkExec.git
I guess this is faster to read from STDIN than export the file on the remote server and then COPY FROM "file exported on the remote server" isn'it ?



Nicolas PARIS

2015-02-07 16:40 GMT+01:00 Thomas Kellerer <spam_eater@gmx.net>:
Nicolas Paris wrote on 07.02.2015 15:14:

Hello !

My goal is to get the result from "COPY TO ..."  query, from JDBC. This query returns : COPY X
(where X is number line inserted)
1) Can I can I consider it useless, since when no error, all lines are suposed to be inserted ?
2) If not useless, how can I get the response "COPY 10" (when 10 rows inserted), I get with psql way, or with pgadmin.

I have tried the int Statement.executeUpdate() method, but it returns 0

Thanks for any help !

Nicolas PARIS

I you are using COPY to import a file located on the server, I don't think you'll get that information from JDBC.

But you can use the equivalent to "COPY .. FROM stdin" through JDBC.
And when you do that, you can get the number of rows inserted:

https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/copy/CopyManager.html





--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general