ABL uses cursors to keep track of where it is in a file. A cursor is like a pointer that points to consecutive records in a file. For example, ABL uses cursors when it processes FOR EACH types of statements. ABL maintains cursor positioning across queries.
The DataServer supports this behavior for Oracle tables that have a mandatory unique index on an INTEGER column or that contain the PROGRESS_RECID column. (The OpenEdge DB-to-Oracle migration utility creates an indexed NUMBER column named PROGRESS_RECID with unique values for the rows in each Oracle table.)
Suppose that you are reading records from the customer file using the custnum index, and your "current" record is customer number 50. This means that ABL has a cursor positioned at custnum 50.