当用于 Oracle DB 时,我遇到了 Spring Jdbc 模板的奇怪问题。
JDK 版本 - 11.0.3
ojdbc8 版本 - 12.2.0.1
Spring jdbc版本-2.2.4.RELEASE
DB-Oracle-12c
问题:
当我在 Jdbc 模板上调用 update() 方法时,有时它不会返回更新的行数,而是返回“0”。
当我在内存数据库(例如 H2)中运行相同的代码时,一切顺利。
我非常仔细地检查了查询,它们看起来很好。
最佳答案
问题在于 Oracle 中 CHAR 数据类型的处理。
Oracle 对此数据类型进行了正确的填充,而 Jdbc 查询因相等性检查而失败(在我使用此字段的 SQL 查询“WHERE”子句中)。
java端Query中使用RTRIM函数解决了这个问题。
关于java - Spring Jdbc模板的更新方法不返回更新的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61963598/