У меня есть сохраненный процесс, который возвращает 1 или 0. Мне нужно это значение обратно в функцию .net, которая его вызывает.Я знаю, как получить набор данных обратно из Oracle (используйте refCursor), я знаю, как вводить данные в Oracle, вызывать cmd.ExecuteNonQuery () (при условии, что вы используете хранимый процесс для ввода данных).Но как вы получите хранимую процедуру одного возвращаемого значения?Я не возвращаю набор данных, но 1 или 0. Так что это немного отличается.
Спасибо.
ОБНОВЛЕНИЕ: КОД, чтобы более конкретно показать, где я иду не так?
try
{
using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ACODBConnectionString3"].ConnectionString))
{
using (OracleCommand cmd = new OracleCommand(sProc,conn))
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter inputParm = new OracleParameter("HospitalFinIn", OracleDbType.Varchar2);
inputParm.Value = HosFin;
//inputParm3.Value = Double.Parse(isActive);
OracleParameter outRefParam = new OracleParameter("cur_out", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
//outRefParam.
cmd.Parameters.Add(inputParm);
cmd.Parameters.Add(outRefParam);
outcome = (int)cmd.ExecuteScalar();
if (outcome == 1)
FinUniq = false;
else if (outcome == 0)
FinUniq = true;
else
FinUniq = true;
//outcome = cmd.ExecuteNonQuery();
//adapter = new OracleDataAdapter(cmd);
//adapter.Fill(ds);
}
}
}
Это исключение, которое я получаю при запуске этого
Specified cast is not valid.
Не уверен, что я делаю неправильно.Сохраненный процесс определенно возвращает 0 или 1.