我有一个oracle存储过程,它将返回一个值。我需要在C#程序中获取OUTPUT值。我需要知道如何使用OracleCommands AddWithValue方法获取OUTPUT参数。
我现在写的方式是:
OracleCommand Ocmd = new OracleCommand(_StoredProcedure, OraCon);
Ocmd.CommandType = CommandType.StoredProcedure;
Ocmd.Parameters.AddWithValue("Filed1", "Value1");
Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;
OraCon.Open();
int RecivedDetID = Ocmd.ExecuteNonQuery();
OraCon.Close();
return Ocmd.Parameters[_OutParam].Value.ToString();
我知道OUTPUTPARAm我怎么称错了。我怎样才能实现它 OracleCommand的AddWithValue方法。我不想使用OracleCommands Add方法,我们还需要指定Type。
答案 0 :(得分:5)
确保在执行前在参数上设置SIZE属性。对于Oracle中的输出参数,指定的大小充当缓冲区。如果未设置缓冲区,则为0,因此您无法从数据库中获取该值。
var param = Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;
param.Size = 255;
其余的都很好!