(Oracle + dapper C#) Выполнить функцию oracle c входными параметрами которая возвращает type as object
У меня возникли трудности с выполнением функции oracle c входными параметрами которая возвращает type as object с сопровождением ошибки System.ArgumentException: "Invalid parameter binding".
function fn_logon(v_user_login varchar2, v_password varchar2)
return tp_user
где tp_user это
create or replace type tp_user as object
(
id number,
user_login varchar2(30),
first_name varchar2(30),
name varchar2(30),
last_name varchar2(30),
id_role number,
is_active number
)
вызов c `
public static void LogOn(AutorizationRequest req)
{
DynamicParameters dynamicParametrs = new DynamicParameters();
dynamicParametrs.Add(":v_user_login", req.UserName);
dynamicParametrs.Add(":v_password", req.Password);
dynamicParametrs.Add(":v_result", dbType: DbType.Object, direction: ParameterDirection.Output);
using (IDbConnection con = config.OracleConfig.GetConnection())
{
var results = con.Query<AutorizationResponse>("PKG_AUTORIZATION.FN_LOGON", dynamicParametrs, commandType: CommandType.StoredProcedure);
config.OracleConfig.CloseConnection(con);
}
}
public class AutorizationResponse
{
public int Id { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public int IdRole { get; set; }
public int IsActive { get; set; }
}
`
Ответы (1 шт):
Автор решения: ESkri
→ Ссылка
procedure fn_logon(v_user_login varchar2, v_password varchar2)
return tp_user
Процедура не может возвращать никакое значение кроме своих out-параметров.
Это должна быть функция.