Formatear los datos en SQL
El formato de los datos de entrada puede provocar fallos al ejecutar la sentencia SQL. Por ejemplo
SELECT * FROM MOVIES WHERE TITLE='McHale's Navy'
El apóstrofo de McHale's hace que la sentencia SQL provoque un error al intentar ejecutarla, ya que se interpretará como cierre de comillas.
La solución, utilizando Hibernate o iBATIS no tendremos estos problemas. Tampoco si utilizamos PreparedStatement. Pero en ocasiones (desgraciadamente) debemos construir la sentencia dinámicamente. En cuyo caso podemos utilizar el método estático escapeSql de la clase StringEscapeUtils, incluido en la librería common-lang.jar que podemos encontrar en el sitio web de apache. Un ejemplo de uso:
statement.executeQuery("SELECT * FROM MOVIES WHERE TITLE='" +StringEscapeUtils.escapeSql("McHale's Navy") + "'");
Gracias a Carlos por la ayuda tan rápida sobre el tema.
También te puede interesar:
- [JDBC] – UNION de datos tipo LONG La sentencia siguiente (SELECT a.texto FROM…) UNION (SELECT a.texto FROM…) si el campo "a.texto" es de tipo LONG da el error siguiente: ORA-00997: uso no...
- [JDBC] – Recuperar campos de dos tablas diferentes Queremos realizar una consulta de los datos contenidos en dos tablas diferentes. Para ello podemos utilizar una sentencia SQL del siguiente estilo: SELECT *FROM SOLICITUDES...






























