Thread: Postgresql - COPY TO - get number row inserted - from JDBC
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
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
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
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:I you are using COPY to import a file located on the server, I don't think you'll get that information from JDBC.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
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