Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

A batch-update are several insert/update/delete statements which are processed by the database together. This is usualy done for perfomance reasons. 1x 1000 inserts is much faster than 1000x 1 insert. A BatchUpdateException means 1 (or more) statements failed most often due to a constraint-violation. You will have to look at the stored procedure to see what it has been doing. Mayby your dba can give you more information about what went wrong.

I dropped one column from the table. When i tried to insert records to that table i was getting BatchUpdateException.

After running the below command the problem got solved

REORG TABLE TABLE_NAME

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top