【发布时间】:2022-01-02 06:31:54
【问题描述】:
我在 Oracle 11g DB 上有一个 alpha 表,其中包含 id INTEGER、data VARCHAR2(5) 和 last_update TIMESTAMP 列。
我使用 WebLogic 12 服务器上托管的 Java 8 应用程序的主键列(id 列)查询该表。该查询在 Spring Framework 4.2 的 NamedParameterJdbcDaoSupport 类中实现,我通过迭代返回的 java.sql.ResultSet 对象来获取结果。
到目前为止一切顺利。根据查询中提供的 id 值是否存在,我得到 0 或 1 条记录。并且data 和last_update 列按原样从数据库表中检索。
我不得不使用ALTER TABLE alpha MODIFY data VARCHAR2(6); 语句将data 列的大小增加到6 个字节以满足新要求。我用data 列的6 个字符值和last_update 列的当前时间更新了所有行。当我从任何 SQL 客户端查询表时,我看到 data 列的 6 个字符值以及我更新的正确的 last_update 值。
但 Java 8 应用程序仍会检索 data 列的 5 个字符值。检索到的 last_update 值是我更新的正确值。应用程序中没有长度修整代码,getter 和 setter 都在一个普通的 POJO 中。
我可以在Coderanch 中看到类似的问题,但即使在那里,我也没有看到列出的原因和适当的修复方法。感谢您提供任何帮助。
【问题讨论】:
标签: java jdbc oracle11g resultset