1

我在调用 Oracle 存储过程时遇到问题。我还将 InsightDbConnection 与 Execute 方法一起使用,当我输入 outputParameter 是一个对象但它仍然为空时。

这是我的代码

var storedProcedureName = "spTest";
object param = new { P_Param1 = "",//output parameter
                     P_Param2 = "Input parameter"
                   };
object output = new {P_Param1 = ""};
IDbConnection  dbConnect = new OracleConnection(connectionString).OpenConnection();
dbConnect .Execute(storedProcedureName , param , outputParameters: output);

任何人都可以帮助我,请。

4

1 回答 1

0

您的输出对象是匿名类型。在 C# 中,匿名类型的属性是只读的,一旦创建就不能更改。

有一个测试用例展示了如何在 oracle 中使用输出参数:

https://github.com/jonwagner/Insight.Database/blob/734a3e09fa3c7ae3b8ac63fc8c49f8fcb4bd3fa5/Insight.Tests.OracleManaged.Core/OracleTests.cs#L79

于 2018-10-24T13:32:56.257 回答