A SELECT statement consists of a query with an optional
The
You can set the isolation level in a SELECT statement using the WITH {RR|RS|CS|UR} syntax.
A SELECT statement returns a ResultSet.
A cursor is a pointer to a specific row in ResultSet. In Java
applications, all ResultSets are cursors. A cursor is updatable; that
is, you can update or delete rows as you step through the ResultSet if
the SELECT statement that generated it and its underlying query meet cursor
updatability requirements, as detailed below. You use a FOR UPDATE clause
when you want to generate an updatable cursor.
If a SELECT statement
meets the requirements listed below, cursors are updatable only if you specify
FOR UPDATE in the FOR clause (see
Only simple, single-table SELECT cursors and FORWARD_ONLY ResultSets can be updatable. The SELECT statement for updatable ResultSets has the same syntax as the SELECT statement for updatable cursors. To generate updatable cursors:
There is no SQL language statement to assign a name to
a cursor. Instead, you use the JDBC API to assign names to cursors or retrieve
system-generated names. For more information, see "Naming or Accessing the
Name of a Cursor" in Chapter 5 of the
Cursors
are read-only by default. For a cursor to be updatable, you must specify FOR
UPDATE in the FOR clause (see
The SELECT depends
on all the tables and views named in the query and the conglomerates (units
of storage such as heaps and indexes) chosen for access paths on those tables.
CREATE INDEX does not invalidate a prepared SELECT statement. A DROP INDEX
statement invalidates a prepared SELECT statement if the index is an access
path in the statement. If the SELECT includes views, it also depends on the
dictionary objects on which the view itself depends (see
Any prepared UPDATE WHERE CURRENT or DELETE WHERE CURRENT statement against a cursor of a SELECT depends on the SELECT. Removing a SELECT through a java.sql.Statement.close request invalidates the UPDATE WHERE CURRENT or DELETE WHERE CURRENT.
The SELECT depends on all aliases used in the query. Dropping an alias invalidates a prepared SELECT statement if the statement uses the alias.