[英]¿How to call existing stored procedure in oracle by EF?
我有一个需要从我的项目中调用的存储过程,由于我从未使用过Oracle和Entity Framework,因此遇到了这个问题,您能帮我如何调用存储过程吗?
这是我的存储过程:
create or replace procedure Random.SP_Random(r_cursor out sys_refcursor)
as
begin
open r_Cursor for
select element1, element2, element3 from Random.table;
end;
这是读取Sys_RefCursor的示例函数
public void SPRandom()
{
OracleConnection connection = this.Database.GetOracleConnection();
bool needClose = false;
if (connection.State != ConnectionState.Open)
{
connection.Open();
needClose = true;
}
try
{
using (OracleCommand cmd = connection.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"Random.SP_Random";
OracleParameter outParameter = cmd.CreateParameter();
outParameter.ParameterName = "r_cursor";
outParameter.ParameterType = OracleDbType.Cursor;
outParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outParameter);
using (OracleDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
.... read your data
}
}
}
}
finally
{
if (needClose)
{
connection.Close();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.