【问题标题】:I'm executing a query which returns count . Throws exception when i try to get value from resultSet我正在执行一个返回 count 的查询。当我尝试从 resultSet 获取值时抛出异常
【发布时间】:2012-09-07 08:46:02
【问题描述】:

查询:

 select count(*) from table_name

数据库:Sqlserver

totalrowcount = Integer.parseInt(resultSet.getString(1));

当我尝试执行返回计数的查询时,当我尝试从 resultSet 获取值时引发异常。

例外:

com.microsoft.sqlserver.jdbc.SQLServerException: Could not find stored procedure 'count'.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(Unknown Source)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Unknown Source)
    at com.heb.endeca.util.BatchManagerHelper.getRowCount(BatchManagerHelper.java:91)
    at com.heb.endeca.util.BatchManagerHelper.generateFeed(BatchManagerHelper.java:70)
    at com.heb.endeca.batch.BatchManager.startEndecaBatchManager(BatchManager.java:87)
    at com.heb.endeca.batch.BatchManager.main(BatchManager.java:50)

【问题讨论】:

  • 我们能看到更多你的代码吗?您如何精确地执行该查询?但是,我最初的想法是 getString() 不是您用来检索计数的方法
  • statement = connection.createStatement(); LOG.debug("为 pricecountquery 创建的语句"); resultSet = statement.executeQuery(countQuery); if(resultSet.next()) System.out.println(resultSet.getInt(1));这是我的代码。仍然会抛出 com.microsoft.sqlserver.jdbc.SQLServerException: 找不到存储过程 'count' -- 虽然 resultset.next() 返回 true,但类似这样的异常
  • 不要将您的代码添加为评论,请编辑原始帖子。人们会阅读这篇文章,不一定是 cmets。

标签: java sql resultset


【解决方案1】:

Count 返回一个数值。

select count(*) num_rows from table_name

totalrowcount = 0;

if(rs.next())
{
    totalrowcount = rs.getInt("num_rows");
}

【讨论】:

    猜你喜欢
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2017-10-05
    • 2016-01-06
    • 2013-01-21
    相关资源
    最近更新 更多