0

次の質問があります。

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 を実行するために適切な数のパラメーターを送信していないという例外がスローされます。それらの 1 つだけがアクセス可能です (パッケージで最初に宣言されたもの): 2 つ目は常にこの例外をスローします。

ExecuteDataSet() を使用して、List {}、object[] でパラメーターを 1 つずつ渡そうとしましたが、うまくいきませんでした。

それを実現する方法はありますか?

ありがとう。

4

0 に答える 0