Foros del Web » Programación para mayores de 30 ;) » Java »

Caracter < en JDBC

Estas en el tema de Caracter < en JDBC en el foro de Java en Foros del Web. Hola. Estoy haciendo un editor en el cual introduzco una consulta SQL, obteniendo el resultado mediante JDBC. Cuando introduzco caracteres < o > (por ejemplo ...
  #1 (permalink)  
Antiguo 29/05/2009, 01:53
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Caracter < en JDBC

Hola. Estoy haciendo un editor en el cual introduzco una consulta SQL, obteniendo el resultado mediante JDBC.

Cuando introduzco caracteres < o > (por ejemplo select * from tabla where rownum < 5) no me funciona

¿Como se escapan esos caracteres?

Gracias.
  #2 (permalink)  
Antiguo 29/05/2009, 03:32
 
Fecha de Ingreso: diciembre-2008
Mensajes: 12
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Caracter < en JDBC

No tengo ni idea pero has probado con \ ???????
  #3 (permalink)  
Antiguo 29/05/2009, 03:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Caracter < en JDBC

En JDBC esos carácteres no tienen que "escaparse", así que el problema debe estar en otro sitio. Conociendo el caracter <, una fuente probable de problemas es si hay XML por en medio, por ejemplo.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 29/05/2009, 04:31
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Caracter < en JDBC

----------
  #5 (permalink)  
Antiguo 29/05/2009, 04:35
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Caracter < en JDBC

No hay xml, lo hago directamente desde el servicio:

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/miDS");
Connection con = ds.getConnection(usuario, contrasenya);
con.setAutoCommit(false);
Statement select = con.createStatement();
ResultSet result = select.executeQuery(consulta);

Donde consulta es la cadena que recojo del campo de texto. Así pues, si introduzco una select de este tipo:

select campo1, campo2 from tabla where id = 4

me funciona, el problema es al introducir estos caracteres:

select campo1, campo2 from tabla where id < 4

Muchas gracias a todos!!
  #6 (permalink)  
Antiguo 29/05/2009, 04:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 115
Antigüedad: 15 años, 6 meses
Puntos: 4
Respuesta: Caracter < en JDBC

Y que es exactamente lo que te pasa? Recibes un error? No recibes datos?
  #7 (permalink)  
Antiguo 29/05/2009, 04:49
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Caracter < en JDBC

ORA-00911: carácter no válido
  #8 (permalink)  
Antiguo 29/05/2009, 05:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Caracter < en JDBC

Buscando por Internet, parece que Oracle da problemas bastante raros con esas cosas y parecen ser causados por el driver JDBC (que raro, un driver JDBC de Oracle con bugs!).

Dos cosas a probar que se me ocurren:
.- Probar con otra version de driver compatible con la BDD (mas reciente a ser posible o anterior si es la más reciente).
.- Probar a usar PreparedStatement en vez de Statement, ya que usa un parser diferente y a lo mejor así da menos problemas.

Suerte
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #9 (permalink)  
Antiguo 29/05/2009, 06:29
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Caracter < en JDBC

Muchas gracias, lo probaré!

Saludos!!

Última edición por camarero; 29/05/2009 a las 06:36
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:19.