EXPERT RESPONSE
There are two types of cursors, implicit and explicit
cursors. In PL/SQL, you create an explicit cursor with
the CURSOR declaration. In JDBC programs, you create
an explicit cursor for any SQL statement you pass to
the database.
But sometimes, the database will create cursors for
you. Any time the database creates a cursor for you
that you have not explicitly stated, this is called an
implicit cursor. Why does the system do this? The main
reason is to handle all of the recursive SQL
statements the system generates on your behalf. When
you query a table, the system needs to query the data
dictionary to see if that table exists, if you have
permissions to view that table, etc.
The bottom line is that you are seeing open cursors
for recursive SQL statements. Just enable SQL_TRACE
for your session to see all of the recursive SQL being
generated for you!
For More Information
|