在java中获取巨大的结果集

时间:2018-03-23 14:25:25

标签: java oracle jdbc spring-jdbc sqlexception

我正在尝试从db获取大量结果。我收到以下错误:

java.sql.SQLException: statement handle not executed
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.T4CStatement.doDescribe(T4CStatement.java:724)
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3285)
    at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1914)
    at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515)
    at org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:263)
    at org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:263)

我正在使用以下查询和处理,如下所示:

rs = con.createStatement().executeQuery("SELECT * FROM " + tableName);

        while (rs.next()) {
            info = new IntoTClass();
            info.setId(rs.getString("column1"));
            info.setContentId(rs.getString("column1"));
            info.setAssetId(rs.getString("column2"));

            info.setKeywords(rs.getString("column3"));
            info.setAssetType(rs.getString("column4"));
            info.setSubType(rs.getString("column5"));

我认为错误是因为它试图从数据库获取的巨大结果。任何人都可以建议如何从结果集中拆分结果并一次分割3000个进程?非常感谢。

1 个答案:

答案 0 :(得分:0)

来源:https://jazz.net/forum/questions/210782/list-rqm-reports-fails-with-the-statement-handle-not-executed

此问题可能与JDBC驱动程序有关。您必须使用版本根据系统要求,我们需要使用Oracle Java数据库连接(JDBC)ojdbc6.jar.11.2.0.3或更高版本。更改驱动程序版本以检查问题是否已修复。