我试图通过以下代码通过mono oracle客户端调用包函数:
using (var connection = new OracleConnection(OracleConnectionString))
{
using (var command = connection.CreateCommand())
{
command.CommandType = System.Data.CommandType.StoredProcedure;
command.CommandText = "BIL.TRADE_OPERATIONS_PKG.GET_DOC_SALE_RETURN_SUM";
command.Parameters.Add(new OracleParameter("L_RESULT", OracleType.Int16)
{
Direction = System.Data.ParameterDirection.ReturnValue
});
command.Parameters.Add(new OracleParameter("I_DOC_SALE_ID", OracleType.Number)
{
Value = 7021,
Direction = System.Data.ParameterDirection.Input
});
connection.Open();
command.ExecuteNonQuery();
viewBag.Count = command.Parameters["L_RESULT"].Value.ToString();
}
}
但它在OCIBindByNameBytes方法中出现以下异常:
System.Runtime.InteropServices.MarshalDirectiveException:'无法编组'参数#8':无效的托管/非托管类型组合(Int32 / UInt32必须与I4,U4或错误配对)。 '
有什么建议可以解决这个问题吗? 我试图谷歌,但没有找到任何对我有用的解决方案。