Description: There is no SQL language command to assign a name to a cursor. You can use the JDBC setCursorName method to assign a name to a ResultSet that allows positioned updates and deletes.
Keywords: Cursors, naming, accessing system-generated names

# Naming or accessing the name of a cursor

There is no SQL language command to assign a name to a cursor. You can use the JDBC `setCursorName` method to assign a name to a `ResultSet` that allows positioned updates and deletes.

You assign a name to a `ResultSet` with the `setCursorName` method of the `Statement` interface. You assign the name to a cursor before executing the `Statement` that will generate it.

    Statement s3 = conn.createStatement();
    // name the statement so we can reference the result set
    // it generates
    s3.setCursorName("UPDATABLESTATEMENT");
    // we will be able to use the following statement later
    // to access the current row of the cursor
    // a result set needs to be obtained prior to using the
    // WHERE CURRENT syntax
    ResultSet rs = s3.executeQuery("select * from
        FlightBookings FOR UPDATE of number_seats");
    PreparedStatement ps2 = conn.prepareStatement(
        "UPDATE FlightBookings SET number_seats = ? " +
           "WHERE CURRENT OF UPDATABLESTATEMENT");

Typically, you do not assign a name to the cursor, but let the system generate one for you automatically. You can determine the system-generated cursor name of a ResultSet generated by a SELECT statement using the `ResultSet` class's `getCursorName` method.

    PreparedStatement ps2 = conn.prepareStatement(
        "UPDATE employee SET bonus = ? WHERE CURRENT OF "+
            Updatable.getCursorName());

Parent topic: Updatable result sets
Related concepts
Requirements for updatable result sets
Related reference
Extended updatable result set example