Heim  >  Artikel  >  Datenbank  >  ORA-01002: 提取违反顺序的问题分析

ORA-01002: 提取违反顺序的问题分析

WBOY
WBOYOriginal
2016-06-07 17:58:024648Durchsuche

前段时间,监控每天晚上跑的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 curso

前段时间,监控每天晚上跑的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 theSQLstatement, 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.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn