Description: Executing a Statement that returns values gives a ResultSet (java.sql.ResultSet), allowing the application to obtain the results of the statement. Only one ResultSet can be open for a particular Statement at any time, as per the JDBC specification.
Keywords: Cursors, all result sets as

# ResultSets and Cursors

Executing a Statement that returns values gives a `ResultSet` (`java.sql.ResultSet`), allowing the application to obtain the results of the statement. Only one `ResultSet` can be open for a particular `Statement` at any time, as per the JDBC specification.

Thus, executing a Statement automatically closes any open `ResultSet` generated by an earlier execution of that `Statement`.

For this reason, you must use a different Statement to update a cursor (a named `ResultSet`) from the one used to generate the cursor.

The names of open cursors must be unique within a Connection.

Parent topic: Connections
Related concepts
Statements
Nested connections
Result set and cursor mechanisms