Get oracle output parameter using OracleCommand

11,922

Make sure you set the SIZE property on the parameter before executing. With output parameters in Oracle, the specified size acts as a buffer. If the buffer isn't set, it is 0 so you don't get the value from the database.

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

The rest is good!

Share:
11,922
smilu
Author by

smilu

Updated on September 11, 2022

Comments

  • smilu
    smilu almost 2 years

    I have a oracle stored procedure which will return a value. I need to get the OUTPUT value in my C# program. I need to know how we can get the OUTPUT parameter using the OracleCommands AddWithValue method.

    The way i have written now is:

     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();
    

    I know the OUTPUTPARAm how i have called is wrong. How can i achieve it using the AddWithValue method of the OracleCommand. I dont want to use the OracleCommands Add method where we need to specify the Type also.

  • Developer
    Developer over 12 years
    Which version of the OracleDataAccess are you using?
  • Developer
    Developer over 12 years
    I mean as far as 10g/11g. The version this works in is 10.2.0.100 or higher. Also, are you using the .net 1.x or 2.x assemblies? you can find this information by right clicking on the Reference in the project and clicking properties.