我在从 jdbcTemplate 执行以下查询时遇到异常
update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?
以下是异常(exception)情况
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?]; SQL state [null]; error code [0]; ORA-00900: invalid SQL statement
其中 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);
关于java - SQL状态[空];错误代码[0]; ORA-00900 : invalid SQL statement with jdbcTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54550970/