What does this BatchUpdateException mean?

Björn Lindqvist picture Björn Lindqvist · Mar 15, 2011 · Viewed 9.4k times · Source

I'm getting this BatchUpdateException from a stmt.executeBatch() statement:

BatchUpdateException: A resultset was created for update

The internet does not have any information on this exception message. What does it mean? The traceback doesn't contain anything useful other than that a stored procedure failed.

Answer

Joachim Sauer picture Joachim Sauer · Mar 15, 2011

I'd interpret the message as meaning that an SQL statement that you added via addBatch() has produced a ResultSet, meaning that it's not your normal INSERT, UPDATE or DELETE statement.

Statements that should return results can't be executed in batches with JDBC.

The JDBC Tutorial (under the heading "Handling Batch Update Exceptions") confirms it:

You will get a BatchUpdateException when you call the method executeBatch if (1) one of the SQL statements you added to the batch produces a result set (usually a query) or (2) one of the SQL statements in the batch does not execute successfully for some other reason.

You seem to be running into case 1 here.