Я хочу получить возвращаемое значение функции ORACLE (12 c) PL SQL с NETCORE C#
Я не могу получить возвращенное значение, и оно работает отлично на PL SQL Разработчик. Вот мой код:
public String GetFwdNickCodeFromCdCode(Int32 p_cd_code, string p_cd_code_type)
{
DataSet ds = new DataSet();
String returnValue = String.Empty;
try
{
List<OracleParameter> parameters = new List<OracleParameter>();
var param_p_cd_code = new OracleParameter("p_cd_code", OracleDbType.Varchar2, 50, ParameterDirection.Input) { Value = p_cd_code.ToString() };
parameters.Add(param_p_cd_code);
var param_p_cd_code_type = new OracleParameter("p_cd_code_type", OracleDbType.Varchar2, 50, ParameterDirection.Input) { Value = p_cd_code_type };
parameters.Add(param_p_cd_code_type);
var param_result = new OracleParameter("result", OracleDbType.Varchar2, 100, ParameterDirection.ReturnValue);
parameters.Add(param_result);
returnValue = ExecuteFunctionOutPutParameterString("fwd.gx_cd_to_nick.fx_cd_code", parameters);
return returnValue;
}
catch (Exception e)
{
throw e;
}
finally
{
base.ClosedConnection();
}
}
protected String ExecuteFunctionOutPutParameterString(string sp, List<OracleParameter> parameters = null)
{
//DataSet ds = new DataSet();
String returnValue = String.Empty;
try
{
using (OracleConnection connection = OpenConnection())
{
Connection = connection;
using (OracleCommand command = new OracleCommand())
{
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = sp;
if (parameters != null)
{
command.Parameters.AddRange(parameters.ToArray());
}
command.ExecuteNonQuery();
returnValue = command.Parameters["result"].ToString();
}
}
ClosedConnection();
return returnValue;
}
catch (Exception)
{
ClosedConnection();
throw;
}
}
У вас есть правильный способ получить значение "результата"?
Заранее спасибо