Here's a link to the DB2 error codes, so you can look up your next error yourself.
DB2 thinks that your select is using a cursor. Try
select count(*) from TableName where col1 = 9 and col2 = ?
and see if the error goes away.
Here's the full explanation of the error from the IBM DB2 Error code manual.
-514
THE CURSOR cursor-name IS NOT IN A PREPARED STATE
Explanation
The application program has tried to use a cursor, 'cursor-name,' that is not in a prepared state. The cursor is associated with a statement that:
- Was never prepared.
- Was invalidated by a commit or rollback operations
System action
The statement cannot be processed.
Programmer response
For case 1, ensure that you prepare the statement that is named in the DECLARE CURSOR statement for 'cursor-name' before you try to open the cursor.
For case 2, take one of the following actions:
- Use the WITH HOLD option of DECLARE CURSOR.
- Do not execute a commit or rollback operation until you are finished using the cursor.
- Prepare the statement again after the commit or rollback.
statement.executeQuery("SELECT COUNT(*) FROM MY_SCHEMA.MY_TABLE;").getLong(1)