【问题标题】:How to close cursors opened by java class in PL/SQL database?如何关闭 PL/SQL 数据库中 java 类打开的游标?
【发布时间】:2014-07-14 10:51:23
【问题描述】:

我有一个案例,我从 PL/SQL 包中调用 java 源,在 java 源中,我将数据插入到我的数据库表中。通过这个插入操作,每次调用时都会有一个游标保持打开状态。

我无法更改此 java 源代码,因此无法关闭那里的结果集。

所以我想在我的包中编写一些 PL/SQL 代码,以便在每次调用 java 源并插入数据后关闭光标。

我该怎么做?我不想增加我的最大打开光标限制。

【问题讨论】:

  • 为什么 Java 代码不能自行清理,为什么不能修复?
  • Java代码由其他团队管理和修改,他们最近实现了JPA,之前是Toplink。我猜这些变化会限制它自己清理。
  • 如果您调用的例程返回一个游标,您可以编写另一个 Java 函数来调用现有的 Java 函数,然后在完成时关闭游标。如果处于打开状态的光标在您调用的例程之外不可用,则“其他团队”需要修复此资源泄漏。祝你好运。

标签: java oracle plsql jpa-2.0 cursors


【解决方案1】:

如果你使用preparestatement来执行sql,那么你可以创建一个不同的对象来暂缓数据,然后可以关闭语句来关闭游标。

在将数据传输到其他对象之前不要关闭语句,否则会出现 Closed statement 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多