【问题标题】:¿How to call existing stored procedure in oracle by EF?¿如何通过EF调用oracle中已有的存储过程?
【发布时间】:2019-01-04 23:41:05
【问题描述】:

我有一个需要从我的项目中调用的存储过程,由于我从未使用过 Oracle 和实体框架,所以我遇到了这个问题,你能帮助我如何调用存储过程吗?。

这是我的存储过程:

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;

【问题讨论】:

    标签: c# asp.net-mvc oracle entity-framework-6


    【解决方案1】:

    这里是读取 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();
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 2015-09-21
      • 2019-01-16
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多