JOOQ 和 Oracle REF CURSOR 流. 默认情况下,



>JOOQ 将 REF CURSOR out 参数包装为生成的代码中的Result<Record>

在某些情况下 - 对于大型报告,最好有记录流 -Cursor<Record>Stream<Record>,而不是一次获取所有记录。

我们是否有可能更改在这种情况下生成的代码或通过其他方式在 JOOQ 中实现 REF CURSOR 的Record流?

恐怕目前(jOOQ 3.12(是不可能的。该区域中有一些待处理的功能请求:

  • #4503 添加org.jooq.Cursors extends Iterable<Cursor<Record>>
  • #4472 添加Routine.executeLazy()以允许获取org.jooq.Cursors

但是,根据您使用的数据库产品,您可以将REF CURSOR返回过程包装在表值函数中,并使用jOOQ的ResultQuery.fetchLazy()方法在普通SELECT语句中获取结果。这将适用于Oracle和PostgreSQL。

相关内容

最新更新