Получить выходной параметр оракула, используя OracleCommand
У меня есть хранимая процедура оракула, которая будет возвращать значение. Мне нужно получить значение OUTPUT в моей программе на C#. Мне нужно знать, как мы можем получить параметр OUTPUT, используя метод AddCithValue OracleCommands.
То, как я написал сейчас:
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, как я назвал, неправильно. Как я могу добиться этого с помощью метода AddWithValue OracleCommand. Я не хочу использовать метод OracleCommands Add, где нам нужно также указать тип.
1 ответ
Убедитесь, что вы установили свойство SIZE для параметра перед выполнением. С выходными параметрами в Oracle указанный размер действует как буфер. Если буфер не установлен, он равен 0, поэтому вы не получите значение из базы данных.
var param = Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;
param.Size = 255;
Остальное хорошо!