Получить выходной параметр оракула, используя 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;

Остальное хорошо!

Другие вопросы по тегам