oracle
存储过程
结果集
it
下面是一个最最简单的基本例子,在存储过程上oracle与sql还是有很大的区别。
首先,创建包规范:
create or replace package stupkg ----stupkg是包的名称
is
type mycursor is ref cursor; -------定义一个名为mycursor的类型
procedure getstudentinfo(cur_mycursor out mycursor);
end; ----包规范中包括定义的一个mycursor类型和存储过程getstudentinfo
其次,创建包体(主要是存储过程)
create or replace package body stupkg
is
procedure getstudentinfo(cur_mycursor out mycursor)
is
begin
open cur_mycursor for select * from student;
end getstudentinfo;
end stupkg;
以上也就完成了select结果集存储过程的创建,下面看一下C#如何使用其结果集:
OracleCommand orclcomm = new OracleCommand("stupkg.getstudentinfo",oraconn);
orclcomm.CommandType = CommandType.StoredProcedure;
OracleParameter parament = new OracleParameter("cur_mycursor",OracleType.Cursor);
parament.Direction = ParameterDirection.Output;
orclcomm.Parameters.Add(parament);
OracleDataAdapter oda = new OracleDataAdapter(orclcomm);
DataSet ds = new DataSet();
oda.Fill(ds);