如何在ODP.NET中测试PL/SQL变量的返回值?



我有一段执行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)

相关内容

  • 没有找到相关文章

最新更新