Подтвердить что ты не робот

Java.sql.SQLException: ORA-03115: неподдерживаемый сетевой тип данных или представление

Я использую базу данных Oracle 11g. Когда я пытаюсь получить доступ к данным из db, он показывал ошибку java.sql.SQLException: ORA-03115: неподдерживаемый сетевой тип данных или представление. Я не понимаю, что означает эта ошибка.

мой код:

 String uname,pass;
    ResultSet rs = null;
    response.setContentType("text/html");
    PrintWriter out=response.getWriter();
  try
  {
    uname=request.getParameter("uname");
    pass=request.getParameter("pass");
    Connection con=prepareConnection();
    String Query="select uname from passmanager where pass=?";
    PreparedStatement ps=con.prepareStatement(Query);
    ps.setString(1,pass);
    rs=ps.executeQuery(Query);
    if (rs.next() && uname.equalsIgnoreCase(rs.getString("uname")) || uname.equalsIgnoreCase(rs.getString("email"))) {
    HttpSession session = request.getSession(true);
    session.setAttribute("uname", rs.getString(1));

    ServletContext context = getServletContext();
    RequestDispatcher dispatcher = context
                    .getRequestDispatcher("/profile");
    dispatcher.forward(request, response);
  }

Любой поможет мне решить эту проблему.

4b9b3361

Ответ 1

Вместо:

rs = ps.executeQuery(Query);

вы должны выполнить:

rs = ps.executeQuery();

В противном случае вы создадите отчет и потеряете все параметры, потому что присваиваете ему новый оператор SQL (хотя он и тот же).

Ответ 2

Добавить столбец электронной почты

select uname, email from passmanager where pass=?

Ответ 3

Эта ошибка появляется при попытке получить поле по имени (rs.getString( "uname" ) в вашем случае), которое не находится в наборе результатов.

И, как сказал igr, вы пытаетесь получить поле электронной почты (с rs.getString( "email" )), и это не в запросе, так что это ваша ошибка.

Я нашел этот разговор, потому что получал ту же ошибку в приложении, когда пытался получить поле с пробелом в конце строки (rs.getString( "uname" ) вместо rs.getString( "uname" ).

И я просто исправлю это, используя правильное имя для поля, которое я получал от запроса.

Надеюсь, это полезно!;)