我有以下问题。
我在 Oracle 数据库包中有几个存储过程。实际上,它们的参数数量不同(我不允许触摸或更改存储过程)。
我使用 ODP.NET 和 Entity Framework 5 以及 EntLib.Contrib.Data 来管理对该数据库的访问和操作:
Database db = EnterpriseLibraryContainer.Current.GetInstance<Database>();
...
using( var reader = db.ExecuteReader("SP_NAME", parameters[])
{
...
}
我必须使用参数发现,因为我们的框架就是这样设计的。改变它是最后的资源。
我已经能够使用这种方法访问 SP 和函数,但是当我尝试执行具有过载的 SP 时会出现问题。即,抛出一个异常,我没有发送正确数量的参数来执行该 SP。只有其中一个是可访问的(在包中第一个声明的那个):第二个总是抛出这个异常。
我尝试使用 ExecuteDataSet() 在 List {} 和 object[] 中一一传递参数,但没有成功。
有没有办法让它发生?
谢谢。