Oracle 11g 데이터베이스를 사용 중입니다. db에서 데이터에 액세스하려고하면 java.sql.SQLException 오류가 표시됩니다. ORA-03115 : 지원되지 않는 네트워크 데이터 유형 또는 표현입니다. 나는java.sql.SQLException : ORA-03115 : 지원되지 않는 네트워크 데이터 유형 또는 표현
내 코드입니다 ..이 오류가 무엇을 의미하는지 이해하고 있지 않다 :
Oracle 11g 데이터베이스를 사용 중입니다. db에서 데이터에 액세스하려고하면 java.sql.SQLException 오류가 표시됩니다. ORA-03115 : 지원되지 않는 네트워크 데이터 유형 또는 표현입니다. 나는java.sql.SQLException : ORA-03115 : 지원되지 않는 네트워크 데이터 유형 또는 표현
내 코드입니다 ..이 오류가 무엇을 의미하는지 이해하고 있지 않다 :
대신 :
rs = ps.executeQuery(Query);
rs = ps.executeQuery();
그렇지 않으면, 당신은 unprepare 당신의 문을 당신이 그것을에게 새로운 SQL 문을 할당하기 때문에 (이 같은 비록) 모든 매개 변수를 잃게 :당신은 실행해야한다.
이메일 열을 추가 ..
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);
}
중 하나가 나에게이 문제를 해결하는 데 도움이
select uname, email from passmanager where pass=?
미안 나는 그것을 잊어 버렸습니다. 그러나 지금도 문제는 동일하게 남아 있습니다 ... 나는 문제가 준비된 성명서라고 생각합니다. – ajay
이 오류는 결과 집합에없는 이름 (rs.getString ("uname"))을 사용하여 필드를 가져 오려고 할 때 나타납니다.
그리고 igr이 말한 것처럼 rs.getString ("email")을 사용하여 전자 메일 필드를 가져 오려고 시도했지만 쿼리에 포함되어 있지 않으므로 이것은 사용자 오류입니다.
문자열 끝에 공백이있는 필드를 얻으려고 할 때 응용 프로그램에서 동일한 오류가 발생했기 때문에이 대화를 발견했습니다 (rs.getString ("uname") 대신 rs.getString (.
) "끝나면 uname"그리고 난 그냥 쿼리에서 얻고 있었다 분야에 대한 올바른 이름을 사용하여 문제를 해결할 나는 그것이 유용 희망
을;.!)
놀라운 Codo. 좋은 explaination도 – Oliver
나에게서 upvote의 명확히 가치가있는. 내가 그걸 빨리 봤으면 좋겠어. – JeremyP