2016-11-15 4 views
0

でPL/SQL変数の戻り値をテストすることができます。どのように私はPL/SQLを実行thtaコードのこの部分を持っているODP.NET

 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_existe.Value.ToString()を使用することができ、それは動作しますが、数字であるので、数値としてチェックしたいです。どうしたらいいですか?私が試したキャストは動作しません。私はこのコードを使用している

答えて

0

Finall:

return ((OracleDecimal)p_existe.Value).Value.Equals(1) 

動作します。

関連する問題