ORA-01002: 提取違反順序的問題分析

dcswinner發表於2012-07-09

前段時間,監控每天晚上跑的ETL程式,發現有個程式報ORA-01002: 提取違反順序的錯誤。

oracle的官方文件裡對這個錯誤的解釋是:
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.

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12129601/viewspace-734990/,如需轉載,請註明出處,否則將追究法律責任。

相關文章