Java 查询在JDBC中使用时返回的行数少于SQL developer
我使用JDBC通过prepareStatement和executeQuery连接到oracle数据库。但当我使用来自SQLDeveloper的同一个数据库查询时,我发现通过JDBC返回的行比实际的行少很多 这是否可能是由于连接问题、查询或语句造成的。有人能帮我吗 下面是我在SQLDeveloper中运行的查询-Java 查询在JDBC中使用时返回的行数少于SQL developer,java,oracle,jdbc,Java,Oracle,Jdbc,我使用JDBC通过prepareStatement和executeQuery连接到oracle数据库。但当我使用来自SQLDeveloper的同一个数据库查询时,我发现通过JDBC返回的行比实际的行少很多 这是否可能是由于连接问题、查询或语句造成的。有人能帮我吗 下面是我在SQLDeveloper中运行的查询- select count(*) from xxx where (TIME_STAMP between TO_TIMESTAMP('2015-12-22 09:
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++; }
首先,请确保您连接到同一个数据库。(如果您有可能用于测试的其他人)
然后,看看您的查询,最可疑的一点似乎是日期转换。您可以分析两个不同的结果集,并检查输入的日期周期是否与结果匹配。如果其中一个包含日期值方面的意外结果,则问题可能与Java虚拟机或Oracle服务器的默认时区有关。首先,请确保连接到同一数据库。(如果您有可能用于测试的其他人)
然后,看看您的查询,最可疑的一点似乎是日期转换。您可以分析两个不同的结果集,并检查输入的日期周期是否与结果匹配。如果其中一个包含日期值方面的意外结果,则问题可能与Java虚拟机或Oracle服务器的默认时区有关。
select count(*)
您的查询将始终只返回一行,即仅返回计数。多行的问题在哪里?这是我在SQL developer中用来检查行数的查询。在JDBC中,我在while中使用了一个变量(resultSet.next())来检查返回了多少行。请发布您在SQL developer中(complete语句)和通过JDBC(completeprepareStatement()
和executeQuery()
调用)运行的确切查询。因为现在的答案是:您没有运行相同的查询。@LalitKumarB我用complete编辑过details@Jaydeep在JDBC代码中使用count(*)
时会发生什么情况?select count(*)
您的查询将始终只返回一行,即仅返回计数。多行的问题在哪里?这是我在SQL developer中用来检查行数的查询。在JDBC中,我在while中使用了一个变量(resultSet.next())来检查返回了多少行。请发布您在SQL developer中(complete语句)和通过JDBC(completeprepareStatement()
和executeQuery()
调用)运行的确切查询。因为现在的答案是:您没有运行相同的查询。@LalitKumarB我用complete编辑过details@Jaydeep在JDBC代码中也使用count(*)
时会发生什么?