声明:本文整理自网络,加上个人实际实验结果
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中实现接口的类),注意必须实现包头中声明的所有方法和存储过程。
包体部分定义: