使用具有通用存储库的Oracle数据库使用存储过程获取数据的问题

时间:2019-03-01 08:40:05

标签: c# oracle stored-procedures generic-repository

我正在使用Oracle数据库进行C#项目。我创建了一个带有3个输出参数的存储过程,我需要使用通用存储库来调用它。我尝试了不同的技术,但无法获取数据。以下是我的代码:

public void GetStats()
{
    OracleParameter S_ThisWeek = new OracleParameter("S_ThisWeek", OracleDbType.Decimal, ParameterDirection.Output);
    OracleParameter S_ThisMonth = new OracleParameter("S_ThisMonth", OracleDbType.Decimal, ParameterDirection.Output);
    OracleParameter S_ThisYear = new OracleParameter("p_FIELD2", OracleDbType.Decimal, ParameterDirection.Output);

    var obj1 = ExecWithStoredProcedure("BEGIN WCCA_getDashboardStats(:S_ThisWeek,:S_ThisMonth,:S_ThisYear); END;", S_ThisWeek, S_ThisMonth, S_ThisYear);
    var obj2 = ExecWithStoredProcedure("WCCA_getDashboardStats", S_ThisWeek, S_ThisMonth, S_ThisYear);
    var obj3 = ExecWithStoredProcedure("BEGIN WCCA_getDashboardStats(:S_ThisWeek,:S_ThisMonth,:S_ThisYear); END;");
}

对于以上3个obj变量,我收到以下堆栈消息:

  • obj1:枚举未产生结果
  • obj2:ORA-00900:无效的SQL语句
  • obj3:ORA-01008:并非所有变量都已绑定

看起来像obj1的代码已正确配置,但是当我在带有查询的SQLDeveloper工具中执行此存储过程时,我无法获取记录,而我却能够获取数据。

任何人将不胜感激。

谢谢

0 个答案:

没有答案