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

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

From
Nicolas Paris
Date:
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

From
Adrian Klaver
Date:
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

From
Thomas Kellerer
Date:
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

From
Nicolas Paris
Date:
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