我有一段执行PL/SQL的代码:
using (PedidoEntities db = new PedidoEntities())
{
OracleParameter p_existe = new OracleParameter("p_existe", OracleDbType.Int32);
p_existe.Direction = System.Data.ParameterDirection.ReturnValue;
OracleParameter p_modulo = new OracleParameter("p_modulo", OracleDbType.Int32);
p_modulo.Direction = System.Data.ParameterDirection.Input; p_modulo.Value = (int)modulo;
OracleParameter p_usuario = new OracleParameter("p_usuario", OracleDbType.Varchar2);
p_usuario.Direction = System.Data.ParameterDirection.Input; p_usuario.Value = usuario; p_usuario.Size = usuario.Length;
string sql = @"begin
select 1
into :p_existe
from PERMISOS P
inner join USUARIO U ON U.USUARIO = P.USUARIO
where P.MODULO = :p_modulo
and U.NOMBRE = :p_usuario;
exception
when no_data_found then
:p_existe := 0;
end;";
db.Database.ExecuteSqlCommand(sql, p_existe, p_modulo, p_usuario);
return p_existe.Value.Equals(1);
}
问题是返回值是一个INT,我需要测试1或0。我可以只使用p_exist . value . tostring(),它的工作,但是,我想做检查作为一个数字,因为它是一个数字。我该怎么做呢?
最后我使用了下面的代码:
return ((OracleDecimal)p_existe.Value).Value.Equals(1)
。