【问题标题】:Get oracle output parameter using OracleCommand使用 OracleCommand 获取 oracle 输出参数
【发布时间】:2012-03-18 16:24:17
【问题描述】:

我有一个将返回值的 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 方法。

【问题讨论】:

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


    【解决方案1】:

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

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

    其他都不错!

    【讨论】:

    • 您使用的是哪个版本的 OracleDataAccess?
    • 我的意思是 10g/11g。可以使用的版本是 10.2.0.100 或更高版本。另外,您使用的是 .net 1.x 还是 2.x 程序集?您可以通过右键单击项目中的引用并单击属性来找到此信息。
    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多