Estoy frente a una excepción durante la ejecución de la siguiente consulta JdbcTemplate
update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?
y siguiente es la excepción
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; Excepción de SQL para SQL sin categoría [Actualización TEMP_BRD_STATS SET STATS = null DONDE BRDC_STAT_ID =?]; estado SQL [nulo]; código de error [0]; ORA-00900: instrucción SQL no válida
Donde TEMP_BRD_STATS es mi nombre de tabla de estadísticas y BRDC_STAT_ID son la columna en mi mesa
Nota: - Se permite nulo para la columna STATS
Sin embargo, puedo ejecutar correctamente la consulta SQL en un revelador proporcionando valor de la columna BRDC_STAT_ID válida.
por ejemplo,
update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=523;
Editar: El siguiente es el código Java
result = this.jdbcTemplate.query("update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?", new Object[] {523}, new QueryResultSetExtractor());
valor de la columna se está cambiado después de ejecutar el código anterior, aunque se lanza una excepción.
Supongamos que mi columna estadística está teniendo valor 'éxito' y después de ejecutar por encima del valor de código Java se está cambiado a nulo, pero aún así está lanzando una excepción. tipo de escenario extraño.
El parámetro ?
evidentemente no se ha rellenado Tal vez algunos parámetros similares.:
new Object[] { brdStatId }
En general, JDBC que podría haber sido el uso de la no PreparedStatement.executeUpdate()
pero la versión de la clase base Statement.executeUpdate(String sql)
.
Después añadió código en cuestión:
Ah, consulta (SELECT) y actualización (INSERT / UPDATE) mezclados:
this.jdbcTemplate.update("update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?", 523);