【发布时间】:2016-05-14 08:05:41
【问题描述】:
我从 ojdbc getInt() 得到一个非常有趣的错误,按列号。
ps = conn.prepareStatement("select count(*) from tableA");
rs = ps.executeQuery();
int x;
if (rs.next())
x = rs.getInt(1);
ps = conn.prepareStatement("select count(*) as someVariable from tableA");
rs = ps.executeQuery();
int y;
if (rs.next())
y = rs.getInt(1);
x 和 y 的值不同。 y 是我期望的正确数字。
我正在使用带有 ojdbc6.jar (11.2.0.3.0) 的 java 7
谢谢。
【问题讨论】:
-
这似乎不太可能。它是相同的连接(即相同的会话;或至少到相同的数据库和凭据,两者之间没有数据更改)?您是否正在初始化 x 和 y,如果是的话,这与您最终获得的 x 值是否有任何相似之处?以后可能会有代码在您检查之前修改 x 吗? MCVE 可能比部分 sn-p 有用。
-
x 和 y 初始化为 0,并且都连接到同一个凭证。两者都是分开运行的。