繁体   English   中英

SQL状态[null];错误代码[0]; ORA-00900:带有jdbcTemplate的无效SQL语句

[英]SQL state [null]; error code [0]; ORA-00900: invalid SQL statement with jdbcTemplate

我从jdbcTemplate执行以下查询时遇到异常

update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?

以下是例外

org.springframework.jdbc.UncategorizedSQLException:PreparedStatementCallback; 未分类SQL的SQLException [更新TEMP_BRD_STATS SET STATS = null WHERE BRDC_STAT_ID =?]; SQL状态[null]; 错误代码[0]; ORA-00900:无效的SQL语句

TEMP_BRD_STATS是我的表名,STATS和BRDC_STAT_ID是我表中的列

注意: - STATS列允许使用null

但是,我可以通过提供有效的BRDC_STAT_ID列值在sql developer中成功执行查询。

例如

update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=523;

编辑:以下是JAVA代码

result = this.jdbcTemplate.query("update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?",  new Object[] {523}, new QueryResultSetExtractor());

尽管抛出了异常,但在执行上述代码后,列值会发生变化。

假设我的列STATS具有'SUCCESS'值并且在执行上面的java代码之后值变为null但仍然抛出异常。 一种奇怪的场景。

参数? 显然没有填写。也许一些参数如:

new Object[] { brdStatId }

在一般的JDBC中,它可能不是使用PreparedStatement.executeUpdate()而是使用基类版本Statement.executeUpdate(String sql)


代码添加后有问题:

啊, 查询 (SELECT)和更新 (INSERT / UPDATE)混淆了:

this.jdbcTemplate.update("update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?", 523);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM