我正在使用JDBC通过prepareStatement和executeQuery连接到oracle数据库。但是当我在SQL开发人员的数据库中使用相同的查询时,我发现通过JDBC返回的行远远少于实际的行。
由于连接问题或查询或声明,这是否可行。任何人都可以帮助我。
这是我在SQL开发人员中运行的查询 -
select count(*)
from xxx
where (TIME_STAMP between
TO_TIMESTAMP('2015-12-22 09:45:37.0','YYYY-MM-DD HH24:MI:SS.ff')
and TO_TIMESTAMP('2015-12-22 09:55:37.0','YYYY-MM-DD HH24:MI:SS.ff'))
AND (customerid not like '[null]')
AND (applicationid not like '[null]')
and (status not like '-');
编辑:我在while(resultSet.next())中使用了一个变量计数器来计算返回的行数,从那里我知道返回的行数是不同的。这是下面的JDBC代码 -
String query = "select * from xxx where
(TIME_STAMP between TO_TIMESTAMP('2015-12-22 09:45:37.0','YYYY-MM-DD HH24:MI:SS.ff') and
TO_TIMESTAMP('2015-12-22 09:55:37.0','YYYY-MM-DD HH24:MI:SS.ff'))
AND (customerid not like '[null]')
AND (applicationid not like '[null]')
and (status not like '-')";
stmt = con.prepareStatement(query);
rs = stmt.executeQuery(query);
while (rs.next()) {
counter++; }
答案 0 :(得分:0)
首先,请确保您连接到同一个数据库。 (如果您可能有其他人用于测试等)
然后,查看您的查询,最可疑点似乎是日期转换。您可以分析两个不同的结果集,并检查您输入的日期是否与结果匹配。如果其中一个在日期值方面包含意外结果,则该问题可能与Java虚拟机或Oracle Server的默认时区有关。