In Query 1 presented in this section, note the following points related to cursor behavior:

<2>    The DataServer uses the cursor to compare schema information and fetch column values.

<3,4>    The WHERE clause generated by the DataServer positions the cursor after the row retrieved by the first use of cursor <2> to retrieve CUSTOMER 2.

FIND customer 2.
DISPLAY customer.name customer.custnum customer.postalcode.
FIND NEXT customer.
DISPLAY customer.name customer.custnum customer.postalcode.
 OCI call OCIStmtPrepare <2>     sqlcrc = 41633
   SELECT /*+ INDEX(T0 CUSTOMER##PROGRESS_RECID) */ * FROM 
      DOCTEST.CUSTOMER T0 WHERE PROGRESS_RECID = :rid
 OCI call OCIStmtExecute-DescribeOnly <2>
 OCI call omru   <2>
 OCI call OCIHandleAlloc <0>
 OCI call OCIStmtPrepare <3>     sqlcrc = 53596
   SELECT /*+ INDEX_ASC(T0 CUSTOMER##CUST_NUM) */ PROGRESS_RECID 
      FROM DOCTEST.CUSTOMER T0 WHERE ((CUST_NUM = :1))  order by CUST_NUM 
 OCI call OCIStmtExecute <3>
 OCI call omru   <2>
 OCI call OCIStmtExecute <2>
 OCI call OCIHandleAlloc <0>
 OCI call omru   <3>
 OCI call OCIStmtPrepare <4>     sqlcrc = 3562
    SELECT /*+ INDEX_ASC(T0 CUSTOMER##CUST_NUM) */ PROGRESS_RECID 
      FROM DOCTEST.CUSTOMER T0 WHERE ((CUST_NUM > :p1)) order by CUST_NUM 
 OCI call OCIStmtExecute <4>
 OCI call omru   <2>
 OCI call OCIStmtExecute <2>
 OCI call omru   <4>
       Cursor <4> Rows processed 20 (last execution)
 OCI call OCIHandleFree <0>
       Cursor <2> Rows processed 1 (last execution)
      Total Rows processed     1 (previous executions)
 OCI call OCIHandleFree <0>
       Cursor <3> Rows processed 1 (last execution)
 OCI call OCIHandleFree <0>