Oracle DBA, How To, Error, Cause and Action

ORA-01002: fetch out of sequence

ORA-01002: fetch out of sequence



Cause: This error means that a fetch has been attempted from a cursor which is no longer valid. Note that a PL/SQL cursor loop implicitly does fetches, and thus may also cause this error. There are a number of possible causes for this error, including:

  1. Fetching from a cursor after the last row has been retrieved and the ORA-1403 error returned. 
  2. If the cursor has been opened with the FOR UPDATE clause, fetching after a COMMIT has been issued will return the error. 
  3. Rebinding any placeholders in the SQL statement, then issuing a fetch before reexecuting the statement.




Action: 

  1. Do not issue a fetch statement after the last row has been retrieved - there are no more rows to fetch. 
  2. Do not issue a COMMIT inside a fetch loop for a cursor that has been opened FOR UPDATE. 
  3. Reexecute the statement after rebinding, then attempt to fetch again.