存储过程 out参数返回集合(游标),放在包中:
/*
1、查询某个员工的所有信息 ---> out参数太多
2、查询某个部门中的所有员工信息 ----> 返回的是集合
*/
--查询某个部门中的所有员工信息 ----> 返回的是集合(整个一条记录)
--包头(打包,作为一个整体编译)
create or replace package mypackage is
type empcursor is ref cursor; --自定义类型。其实就是游标类型(集合)
procedure queryEmpList(dno in number,empList out empcursor); --声明存储过程、存储函数
end mypackage;
/
--包体(实现包头中声明的存储过程、存储函数)
create or replace package body mypackage is
procedure queryEmpList(dno in number,empList out empcursor)
as
begin
open empList for select * from emp where deptno=dno; --empList其实是光标(集合)类型,需要open。 由调用者关闭光标
end;
end mypackage;
/
TestOracle.java(Java中调用存储过程,out参数返回集合(游标)):
package demo;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import oracle.jdbc.OracleCallableStatement;
imp