使用OracleCommand获取oracle输出参数

时间:2012-02-29 06:53:50

标签: asp.net oracle system.data.oracleclient

我有一个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。

1 个答案:

答案 0 :(得分:5)

确保在执行前在参数上设置SIZE属性。对于Oracle中的输出参数,指定的大小充当缓冲区。如果未设置缓冲区,则为0,因此您无法从数据库中获取该值。

var param = Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;
param.Size = 255;

其余的都很好!