如何从存储过程中获取嵌套游标 - Java & Oracle
Posted
技术标签:
【中文标题】如何从存储过程中获取嵌套游标 - Java & Oracle【英文标题】:How to get nested cursor from a stored procedure - Java &Oracle 【发布时间】:2021-04-08 17:28:44 【问题描述】:我有一个返回游标的存储过程,并且该游标包含另一个游标(下面示例中的 col_ch)。是这样的(正如我在 Java 代码中看到的那样)
身份证 t_id OracleResultSetImpl 类型的col_ch过程 my_proc ( i_val IN VARCHAR ,i_cont IN 整数 ,o_out 输出光标); 在我的 Java 应用程序中,我在 o_out 的调试值中看到
如何获得 col_ch 的值? 我有一个扩展 StoredProcedure 的简单 bean,并且我已经声明了两个输入参数和一个输出参数(光标:o_result 在调试时显示了提到的字段。 谢谢并感谢您的帮助
【问题讨论】:
打开外部游标,从外部游标读取第一行,从该行的列读取内部游标,从内部游标中获取下一行(我相信它应该已经打开了,但我可能弄错了,您需要打开它),读取列,从内部游标重复并读取更多行,直到您处理完该内部游标中的所有行,然后从外部游标重复读取下一行和遍历其内部游标,直到处理完所有行,最后关闭外部游标(所有内部游标也将隐式关闭)。 确实有效并且对我有帮助。谢谢并感谢您的快速回复 【参考方案1】:打开外部光标;
从外部光标读取第一行。
从该行的列读取内部光标;
a) 我认为它应该已经打开了,但我可能弄错了,您需要打开它; b) 从内部游标中获取下一行; c) 从内部游标的那一行读取列; d) 重复并从内部游标读取更多行和列,直到处理完该内部游标中的所有行;那么重复从外部游标读取下一行并遍历其内部游标,直到处理完所有行;和
最后,关闭外部游标(所有内部游标也将被隐式关闭)。
【讨论】:
以上是关于如何从存储过程中获取嵌套游标 - Java & Oracle的主要内容,如果未能解决你的问题,请参考以下文章