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

Started by Nicolas Parisabout 11 years ago4 messagesgeneral
Jump to latest
#1Nicolas Paris
niparisco@gmail.com

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

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Nicolas Paris (#1)
Re: Postgresql - COPY TO - get number row inserted - from JDBC

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

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

#3Thomas Kellerer
spam_eater@gmx.net
In reply to: Nicolas Paris (#1)
Re: Postgresql - COPY TO - get number row inserted - from JDBC

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

#4Nicolas Paris
niparisco@gmail.com
In reply to: Thomas Kellerer (#3)
Re: Postgresql - COPY TO - get number row inserted - from JDBC

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>:

Show quoted text

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