SQL状态[空]。错误代码[0]; ORA-00900:与JdbcTemplate的无效SQL语句

问题描述 投票:3回答:1

我在从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状态[空]。错误代码[0]; ORA-00900:无效的SQL语句

凡TEMP_BRD_STATS是我的表名STATS和BRDC_STAT_ID是列在我的表

注: - 空是允许STATS列

不过,我可以成功地通过提供有效BRDC_STAT_ID列值执行在SQL Developer中查询。

EG

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是有“成功”的价值和上面的Java代码值执行后得到改变为null,但它仍然抛出异常。很怪情景。

java spring oracle jdbctemplate
1个回答
5
投票

参数?显然不填写也许有些参数等。:

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);
© www.soinside.com 2019 - 2024. All rights reserved.