Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOOQ和Oracle参考游标流_Java_Sql_Jooq - Fatal编程技术网

Java JOOQ和Oracle参考游标流

Java JOOQ和Oracle参考游标流,java,sql,jooq,Java,Sql,Jooq,默认情况下,JOOQ在生成的代码中将REF CURSOR out参数包装为Result 在某些情况下,对于大型报告,最好使用记录流-游标或流,而不是一次获取所有记录 我们是否有可能更改这种情况下生成的代码,或通过其他方式实现JOOQ中REF游标的记录流式传输?恐怕目前(JOOQ 3.12)不可能。该区域存在一些未决的功能请求: 添加org.jooq.Cursors扩展Iterable 添加Routine.executeLazy()以允许获取org.jooq.Cursors 根据您使用的数据库

默认情况下,JOOQ在生成的代码中将REF CURSOR out参数包装为
Result

在某些情况下,对于大型报告,最好使用记录流-
游标
,而不是一次获取所有记录

我们是否有可能更改这种情况下生成的代码,或通过其他方式实现JOOQ中REF游标的
记录流式传输?

恐怕目前(JOOQ 3.12)不可能。该区域存在一些未决的功能请求:

  • 添加
    org.jooq.Cursors扩展Iterable
  • 添加
    Routine.executeLazy()
    以允许获取
    org.jooq.Cursors

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

我们是否可以使用以下场景使用JOOQ,而不在表函数中包装pl/sql表?使用
Configuration.ConnectionProvider()
获取
ConnectionProvider
。获取并释放
javax.sql.Connection
,使用
ConnectionProvider.Acquire()
ConnectionProvider.release()
。使用
javax.sql.Connection
生成
CallableStatement
。使用
OracleTypes.CURSOR
注册REF cus或out参数。使用
DSLContext将
ResultSet
从out参数中用
Cursor
包装。必须在
ConnectionProvider.acquire()和
ConnectionProvider.release()之间使用fetchLazy
Cursor
calls@aelor当前位置我不太确定你在这里的建议,但话说回来,堆栈溢出注释不是进行更复杂讨论的好媒介。我可以请您提出有关用户组()或github()的问题吗?