resueltos optimizar optimización optimizacion inner injection example ejercicios consultas avoiding avoid java sql db2 jcc

java - optimización - optimizar inner join sql server



SQL-Función UPPER en DB2 no funciona (1)

Me estoy conectando a una base de datos DB2 (DB2 v9.7.400.501) desde mi aplicación web Java utilizando el controlador IBM DB2 Tipo 4 (db2jcc4.jar). Cuando intento ejecutar una instrucción SQL como esta,

SELECT * FROM USERS WHERE UPPER(USERNAME) = UPPER(''testuser'');

Obtengo la siguiente excepción:

com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE = -104, SQLSTATE = 42601, SQLERRMC = ;; = UPPER (''testuser''); END-OF-STATEMENT, DRIVER = 4.12.55

El problema es de la función UPPER , ya que una instrucción de selección normal se ejecuta normalmente.


Tal vez deberías usar es de esta manera:

SELECT * FROM USERS WHERE UPPER(USERNAME) LIKE UPPER(''testuser'');

Su código con ''='' parece estar bien para SQLite pero no sabe nada sobre db2.

UPD. Después de algunas investigaciones, puedo decir que el código Java causa un error que intenta ejecutar varias instrucciones en una consulta usando '';'' como delimitador Debería intentar usar PreparedStatement, addBatch () y executeBatch () para varias instrucciones.

UPD2. Este es un problema relacionado con DB2. PostgreSQL, afaik, permite múltiples declaraciones en una sola consulta.