在 Oracle 中使用 query() 方法删除 Spring JdbcTemplate

Posted

技术标签:

【中文标题】在 Oracle 中使用 query() 方法删除 Spring JdbcTemplate【英文标题】:Spring JdbcTemplate deleting with query() method in Oracle 【发布时间】:2014-09-26 13:27:57 【问题描述】:

我正在使用 Spring 中的 JdbcTemplate 来查询 Oracle 数据库并返回结果。但是,如果我使用 DELETE 语句运行 query() 方法,它会回复“ORA-00900:无效 SQL 语句”错误,但条目仍会被删除。

这是 Spring 错误还是 Oracle 错误,我该如何解决? query() 应该不能修改。

【问题讨论】:

为什么不使用专为 SQL 插入/更新/删除设计的jdbcTemplate.update 为什么查询不能修改?它只是像update 方法一样执行查询,但唯一的问题是它需要一个可以解析的ResultSet 【参考方案1】:

您需要使用JdbcTemplate.update 方法。 meant 用于执行单个 DML 运算符(插入/更新/删除)

【讨论】:

我不想更新,我只想选择。使用此功能的 Web 服务应仅用于读取而不是写入,无论用户的角色如何。 如果有异常休眠回滚事务。因此无法删除条目。

以上是关于在 Oracle 中使用 query() 方法删除 Spring JdbcTemplate的主要内容,如果未能解决你的问题,请参考以下文章

使用 Oracle SQL Query 获得与使用 JS date.now() 方法相同的结果

Oracle Bind Query 很慢

Oracle 11g expdp中query参数的使用

使用 'Like' 的 Sql Query 正在给出结果,但使用 '=' 不会在 Oracle 中返回任何结果

ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)

ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)