首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有游标的存储过程在通过hibernate调用时失败

带有游标的存储过程在通过hibernate调用时失败
EN

Stack Overflow用户
提问于 2017-05-02 20:37:34
回答 1查看 163关注 0票数 0

我们在项目中使用hibernate作为ORM工具。我们有一个场景,我们需要调用一个存储过程。现在,此存储过程在内部使用游标来遍历存储在数据库表中的规则列表。

当我们遍历游标时,我们检查@@sqlstatus !=2。当游标中的结果集被完全遍历时,sqlstatus将为2。

当我们使用exec直接执行存储过程时,它会返回结果。此外,它还可以通过java JDBC代码运行。但当我们通过hibernate调用时,它在条件check @@sqlstatus !=2中失败,因为它以某种方式找到sqlstatus = 2。我们尝试了存储过程中的一些调试语句,当通过hibernate调用存储过程时,它不会像sqlstatus =2一样遍历结果集,因此存储过程返回null。

我们使用的是sybase ASE 15.7,hibernate 4.1版本。

请让我知道可能是什么问题。

EN

回答 1

Stack Overflow用户

发布于 2017-05-05 03:05:25

游标到达@@sqlstatus = 2是很自然的,因为这表示结果集的结束,通常游标在该条件出现之前一直被读取。为什么在一种情况下会发生这种情况,而在另一种情况下却不会发生,这是在座的任何人都不可能弄清楚的。可能会有不同之处,因为数据不同(在其中一个场景中是否有打开的事务?),或者其他东西。看起来您必须对您的SQL代码进行一些调试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43738074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档