error
al hacer una consulta en mi servlet a una base de datos me da el suguiente error
java.sql.SQLException: ORA-00933: SQL command not properly ended
alguien podria ayudarme?
java.sql.SQLException: ORA-00933: SQL command not properly ended
alguien podria ayudarme?
Hola!!!
Comprueba que la consulta devuelve algo(pq creo que esa excepcion es debida a que el resulset no recoge nada,o que cuando intenta recorrerlo se encuentra que no hay mas elementos) y despues cuando intentes recorrerlo saltara una excepcion) y en caso de que devuelva algo, captura la excepcion.
Aqui te adjunto un ejemplo:
----------------------
static ResultSet registros;
static Connection conexion;
static Statement sentencia;
static PreparedStatement prepare;
public void Gestionar (HttpServletRequest peticion, HttpServletResponse respuesta)
throws IOException,ServletException
{
try{
System.out.println("Entra en gestionar");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conexion = DriverManager.getConnection("jdbc:odbc:JDBC_ODBC","sa","");
sentencia=conexion.createStatement();
registros = sentencia.executeQuery("SELECT hospital_cod,empleado_no,apellido,funcion,t,salario FROM PLANTILLA ORDER BY APELLIDO");
}
catch(Exception e) {System.out.println("");}
ServletOutputStream out = respuesta.getOutputStream();
respuesta.setContentType("text/html");
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>BASE DE DATOS</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<TABLE border=2>");
try{
while(registros.next())
{
out.println("<tr><td>");
out.println(String.valueOf(registros.getInt(1)));
out.println("</td><td>");
out.println(registros.getString(2));
out.println("</td><td>");
out.println(registros.getString(3));
out.println("</td><td>");
out.println(registros.getString(4));
out.println("</td><td>");
out.println(registros.getString(5));
out.println("</td><td>");
out.println(String.valueOf(registros.getString(6)));
out.println("<br></td></tr>");
}
}catch(SQLException e){}
//esta excepcion se captura pq se produce cuando intenta ir a un elemento mas del resultset(registros.next()) y en este no hay mas elementos
out.println("</table>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
Espero haberte ayudado, de todos modos si necesitas algo, encatada!!!
Suerte y besos...
Comprueba que la consulta devuelve algo(pq creo que esa excepcion es debida a que el resulset no recoge nada,o que cuando intenta recorrerlo se encuentra que no hay mas elementos) y despues cuando intentes recorrerlo saltara una excepcion) y en caso de que devuelva algo, captura la excepcion.
Aqui te adjunto un ejemplo:
----------------------
static ResultSet registros;
static Connection conexion;
static Statement sentencia;
static PreparedStatement prepare;
public void Gestionar (HttpServletRequest peticion, HttpServletResponse respuesta)
throws IOException,ServletException
{
try{
System.out.println("Entra en gestionar");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conexion = DriverManager.getConnection("jdbc:odbc:JDBC_ODBC","sa","");
sentencia=conexion.createStatement();
registros = sentencia.executeQuery("SELECT hospital_cod,empleado_no,apellido,funcion,t,salario FROM PLANTILLA ORDER BY APELLIDO");
}
catch(Exception e) {System.out.println("");}
ServletOutputStream out = respuesta.getOutputStream();
respuesta.setContentType("text/html");
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>BASE DE DATOS</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<TABLE border=2>");
try{
while(registros.next())
{
out.println("<tr><td>");
out.println(String.valueOf(registros.getInt(1)));
out.println("</td><td>");
out.println(registros.getString(2));
out.println("</td><td>");
out.println(registros.getString(3));
out.println("</td><td>");
out.println(registros.getString(4));
out.println("</td><td>");
out.println(registros.getString(5));
out.println("</td><td>");
out.println(String.valueOf(registros.getString(6)));
out.println("<br></td></tr>");
}
}catch(SQLException e){}
//esta excepcion se captura pq se produce cuando intenta ir a un elemento mas del resultset(registros.next()) y en este no hay mas elementos
out.println("</table>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
Espero haberte ayudado, de todos modos si necesitas algo, encatada!!!
Suerte y besos...
