Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 ODP.NET и хранимая процедура  [new]
dsurrea
Member

Откуда:
Сообщений: 12
Есть функция PL/SQL которая возвращает значение bool, я пытаюсь получить это значение вот так

        OracleConnection con = Connect();
        OracleCommand cmd = new OracleCommand("LOGIN.CHECK_DB_PASSWORD1", con);
        cmd.CommandType = CommandType.StoredProcedure;
        
        OracleParameter oraNAme = cmd.Parameters.Add("p_user_name1", OracleDbType.Varchar2);
        oraNAme.Direction = ParameterDirection.Input;
        oraNAme.Value = name;

        OracleParameter oraPAss = cmd.Parameters.Add("p_password1", OracleDbType.Varchar2);
        oraPAss.Direction = ParameterDirection.Input;
        oraPAss.Value = pass;

        OracleParameter oraRes = cmd.Parameters.Add("v_ret", OracleDbType.Int32);
        oraRes.Direction = ParameterDirection.ReturnValue;


        try
        {
            cmd.ExecuteNonQuery();
            if (!(bool)cmd.Parameters["v_ret"].Value)
                return false;
            else
                return true;

        }
        catch (Exception e)
        {
            Console.WriteLine("Error: {0}", e.Message);
            return false;
        }
        finally
        {
            cmd.Dispose();
            con.Close();
            con.Dispose();
        }


И получаю исключение

ORA-06550: Строка 1, столбец 17:
PLS-00382: выражение неправильного типа
ORA-06550: Строка 1, столбец 7:
PL/SQL: Statement ignored

мне кажется это связано с cmd.Parameters.Add("v_ret", OracleDbType.Int32); то что здесь должен быть параметр типа bool...

Не подскажите в чем дело?
25 окт 08, 04:07    [6355232]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить