| From: | "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> | 
|---|---|
| To: | "Thomas Kellerer *EXTERN*" <spam_eater(at)gmx(dot)net>, <pgsql-jdbc(at)postgresql(dot)org> | 
| Subject: | Re: DELETE ... RETURNING | 
| Date: | 2009-07-14 09:47:41 | 
| Message-ID: | D960CB61B694CF459DCFB4B0128514C203937E2A@exadv11.host.magwien.gv.at | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
Thomas Kellerer wrote:
> when using the RETURNING clause in a DELETE statement the 
> driver throws an error:
> 
> org.postgresql.util.PSQLException: A result was returned when 
> none was expected.
> 
> The code that I'm using is as follows:
> 
> Statement stmt = connection.createStatement();
> stmt.executeUpdate("delete from person where firstname like 'A%' returning id");
> 
> Am I missing something or is the "RETURNING" feature not 
> supported by the driver?
> 
> I'm using postgresql-8.4-701.jdbc3.jar with Java5
That's easy; when you issue an SQL statement that returns a result,
you cannot use executeUpdate(java.lang.String).
Use executeQuery(java.lang.String) or execute(java.lang.String) and then getResultSet().
It does not matter whether the statement starts with SELECT or DELETE, the important
point is whether it returns a result set or not.
See for reference:
http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html
Yours,
Laurenz Albe
| From | Date | Subject | |
|---|---|---|---|
| Next Message | devAng@libero.it | 2009-07-15 09:46:25 | SSL & client config. | 
| Previous Message | Ken Johanson | 2009-07-14 06:42:53 | An eta for ResultSetMetaData getTableName, getSchemaName, getCatalogName? |