声明:本文整理自网络,加上个人实际实验结果
Oracle存储过程返回数据集,其实就是返回游标,这里需要了解这样几个概念,游标、存储过程的out参数、引用游标类型、Oracle的程序包,这里只说明具体怎么做,如果想了解以上概念请自行在网上搜索或关注我的博客。
首先说一下思路:
定义一个包(这相当于一个容器)(也可以理解为Java中的类)
包中包含一个存储过程来返回一个游标引用
包中包含一个自定义类型 游标引用(这个类型也可以应用到其它地方,这在调用存储过程时用到)
定义包分两部分:包头、包体
包头部分定义包中应该包含哪些内容(方法,存储过程等只做声明不做实现)(相当于Java中的接口)
包头部分定义:
create or replace package pkg_alen
as
type cursorRef is ref cursor; --定义游标引用类型
procedure query(u_id number,cursor_ref out cursorRef); --定义存储过程声明
end pkg_alen;
包体部分定义包头中的方法,存储过程等的实现(相当于Java中实现接口的类),注意必须实现包头中声明的所有方法和存储过程。
包体部分定义:
create or replace package body pkg_alen --注意这里的包名要和定义包头的包名一致

本文介绍了如何在Oracle中通过存储过程返回数据集,即游标。首先定义了一个包含存储过程和自定义游标类型的包,然后详细阐述了包头和包体的创建过程。接着,展示了如何在SQL中调用该存储过程,特别强调了参数类型的重要性。最后,提供了使用Java调用存储过程的示例代码,虽然未亲测,但给出了参考链接。
最低0.47元/天 解锁文章
5488

被折叠的 条评论
为什么被折叠?



