由Mono Oracle客户端执行包功能

时间:2017-03-21 09:35:15

标签: c# oracle mono

我试图通过以下代码通过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或错误配对)。 '

有什么建议可以解决这个问题吗? 我试图谷歌,但没有找到任何对我有用的解决方案。

0 个答案:

没有答案