Estoy tratando de leer los términos de una base de datos (> 10K) y estoy usando ese término en otra consulta. Estoy recibiendo el siguiente error en Oracle:¿Cómo escapar de comillas simples en sql que está causando que 'la cadena entre comillas no finalice correctamente'?
cadena entre comillas no ha terminado correctamente'
lo hice
term.replaceAll("'", "\\'");
pero eso no parece hacer el trabajo de mí. Además, estos términos son tokens de documentos cuando se convierten en texto. ¿Hay una expresión regular que pueda superar este problema?
La consulta SQL es exacta:
String sql = "Select * from indexDB where (DocID=" + d.getDocId() + "and Term='" + term + "')";
estoy usando Java. El reemplazo no funciona para mí.
Necesita leer en [Inyección SQL] (http://en.wikipedia.org/wiki/SQL_injection) – Oded
Vea también http://bobby-tables.com/ para detalles sobre cómo usar consultas parametrizadas en cualquier idioma que estés usando Esto lo protegerá de la inyección SQL a la que se refiere Oded. –
¡Sí lo revisé y la consulta parametrizada lo hizo! Muchas gracias ! – Aashima