error

manuela
03 de Diciembre del 2003
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?

laura
03 de Diciembre del 2003
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...