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!
Author by
smilu
Updated on September 11, 2022Comments
-
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 over 12 yearsWhich version of the OracleDataAccess are you using?
-
Developer over 12 yearsI 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.