在我们的 Web 应用程序中,一个模块中有 18 个屏幕。我们的用户希望将 18 个屏幕的所有数据放在一页中,以便他们可以一次打印全部数据。
因此,我编写了一个 Oracle 程序来获取所有 18 个屏幕(来自 20 - 22 个表)的数据。这个 Oracle 过程将 13 个游标返回到我的 Java 程序。
页面的性能很好,我得到了想要的结果。
但是,将这么多游标返回给 Java 会产生任何问题吗?
单个会话的最大打开游标数由OPEN_CURSORS
参数控制(默认值 50,通常扩展为数百个)。
如果按照@Polppan的建议在完成获取游标后正确关闭游标,则同时打开 18 个游标应该没有问题。
由于游标只是指向查询的指针,因此通过网络一次返回其中的 18 个也没有问题。