C#调用Oracle带输出数据集的存储过程

Posted 向阳的影子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#调用Oracle带输出数据集的存储过程相关的知识,希望对你有一定的参考价值。

1、创建一个带输出数据集的Oracle存储过程

create or replace procedure PRO_test(in_top in number,cur_out out sys_refcursor) is
--查询指定记录条数的数据,并返回总共记录数,返回多个数据集
begin
open cur_out for
SELECT * FROM dept_dict where rownum < in_top;
end PRO_test;

 

2、C#调用

Pu_Sys.GetConnObject con = new Pu_Sys.GetConnObject();
OracleConnection conn = new OracleConnection(con.Get_ConnStr());
OracleCommand Dcomm = new OracleCommand("PRO_TEST", conn);
Dcomm.CommandType = CommandType.StoredProcedure;

OracleParameter DpPass = new OracleParameter();
DpPass.Value = 5;
DpPass.Direction = System.Data.ParameterDirection.Input;
DpPass.ParameterName = "in_top";
Dcomm.Parameters.Add(DpPass);


OracleParameter DpOut = new OracleParameter("cur_out", OracleType.Cursor);
DpOut.Direction = System.Data.ParameterDirection.Output;
Dcomm.Parameters.Add(DpOut);
OracleDataAdapter Da = new OracleDataAdapter(Dcomm);
DataSet Ds = new DataSet();
try
{
Da.Fill(Ds);
}
catch (Exception)
{

}

conn.Close();
conn.Dispose();

 

以上是关于C#调用Oracle带输出数据集的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程输入参数能否为空

c#调用oracle存储过程,返回2个值

SQL Server 如何执行 带参数的 存储过程

c#调用Mysql带参数的存储过程

c#中两种不同的存储过程调用与比较

在oracle中 存储过程如何调用存储过程?