前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java.sql.SQLException: ORA-01002: fetch out of sequence 错误

java.sql.SQLException: ORA-01002: fetch out of sequence 错误

作者头像
长工
修改2023-09-25 17:06:17
7740
修改2023-09-25 17:06:17
举报
文章被收录于专栏:接口自动化

在通过JPA方式call store procedure的时候,可能出现java.sql.SQLException: ORA-01002: fetch out of sequence 错误。原因大概如下:

当多次执行相同的SQL语句,然后以不同的顺序获取结果集时,可能会出现此错误。这是因为Oracle数据库为每个结果集维护了一个预期的获取顺序(fetch sequence),当实际获取结果的过程与预期的顺序不一致时,就会抛出此错误。

当你在一次查询中从同一个预处理语句(PreparedStatement)或普通Statement获取结果集,然后尝试以不同的顺序获取行时,也可能会导致这个错误。

解决办法就是设置conn.setAutoCommit(false);即可

在使用了conn.setAutoCommit(false);之后,如果我们的代码中是存在连续调用存储过程的情况,这个时候会出现一个问题,那就是上一次的调用结果会出现在下一次的调用中,导致错误。这是由于commit功能被手动false导致的。这个时候我们需要在每次调用结束之后手动去commit或rollback。

比如在我们进行自动化测试时,每个测试用例都会去调用存储过程获取数据库返回的数据,这个时候在所有用例执行前,首先进行了conn.setAutoCommit(false);设置。然后在每个用例执行之后完成如下设置:

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在通过JPA方式call store procedure的时候,可能出现java.sql.SQLException: ORA-01002: fetch out of sequence 错误。原因大概如下:
    • 解决办法就是设置conn.setAutoCommit(false);即可
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档