oracle ORA-01002: fetch out of sequence tips 违反提取顺序
2015-08-14 10:18
661 查看
The Oracle oerr utility notes this on the ora-01002 error:
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 re-executing 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) Re-execute the statement after rebinding, then attempt to fetch again.
ORA-01002 can have multiple causes including:
A PL/SQL loop does fetches without notice
Attempting to fetch from a cursor that is no longer valid (fetching from a row which has been retrieved).
Fetching after a COMMIT has already been issued and a cursor is opened with the FOR UPDATE clause.
Issuing a fetch before re-executing a SQL after rebinding placeholders.
You may want to try using cursor attributes to dodge ORA-01002 in the future. To resolve a current ORA-01002, there are three actions you can perform:
After the last record is received, do not issue a fetch
Inside a fetch loop on a SELECT FOR UPDATE, do not use a COMMIT
Try fetching again after re-executing the statement (after rebinding)
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 re-executing 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) Re-execute the statement after rebinding, then attempt to fetch again.
ORA-01002 can have multiple causes including:
A PL/SQL loop does fetches without notice
Attempting to fetch from a cursor that is no longer valid (fetching from a row which has been retrieved).
Fetching after a COMMIT has already been issued and a cursor is opened with the FOR UPDATE clause.
Issuing a fetch before re-executing a SQL after rebinding placeholders.
You may want to try using cursor attributes to dodge ORA-01002 in the future. To resolve a current ORA-01002, there are three actions you can perform:
After the last record is received, do not issue a fetch
Inside a fetch loop on a SELECT FOR UPDATE, do not use a COMMIT
Try fetching again after re-executing the statement (after rebinding)
相关文章推荐
- JAVA完全控制Oracle中BLOB、CLOB说明 [转]
- 关于oracle+ibatis批量insert的写法
- CentOS Oracle数据库每天自动备份
- oracle 游标实例
- oracle查看写法效率
- 64位系统使用32位的plsql连接64位的Oracle 11g
- Oracle物化视图的一般使用
- Oracle中TO_DATE格式数据按年月日汇总
- oracle 数据库技术支持生命周期表
- 免安装Oracle连接数据库(odbc驱动)
- Oracle索引扫描
- Oracle_绑定变量窥探测试
- 客户端如何访问访问oracle 12c 64位的数据库
- Oracle 11g 导库导不出空表问题
- Oracle数据库优化策略总结篇
- 简析Oracle数据库常见问题及解决方案
- 无法远程访问虚拟机中的EM (Oracle Enterprise Manager)
- Oracle 学习之RAC(七) 集群启动解析
- linux 之静默安装oracle
- Oracle 11gR2 List-Range分区实验