使用OracleCommand获取oracle输出参数

smi*_*ilu 1 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();
Run Code Online (Sandbox Code Playgroud)

我知道我所说的OUTPUTPARAm是错误的。我如何使用OracleCommand的AddWithValue方法实现它。我不想在需要同时指定Type的地方使用OracleCommands Add方法。

小智 5

在执行之前,请确保在参数上设置SIZE属性。使用Oracle中的输出参数,指定的大小用作缓冲区。如果未设置缓冲区,则该缓冲区为0,因此您不会从数据库中获取该值。

var param = Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;
param.Size = 255;
Run Code Online (Sandbox Code Playgroud)

其余的很好!