我正在尝试通过inputstream获取3000万条记录。java sql结果中建议的read()到inputstream。我将处理这些记录并与gft一起转移。尝试此过程时,我的结果集出现java.sql.sqlexception:ora-01002:fetch out-out-sequence错误。但是,并不是每次都这样。我看到有3.2亿张唱片几乎没有成功。有时,我也会在1500万条记录中出现这个错误。读取某些记录后引发的顺序错误(不是在开始时)
以下是我如何创建连接和结果集
connection = dataSource.getConnection();
sql = "select query" // I am selecting 30 columns from table
stmt = connection.prepareStatement(sql); //using PreparedStatement
stmt.fetchSize() // It was set to 300.
rs = stmt.executeQuery(); //resultset
//Not overriding anymore default properties
以下是我的配置中的属性
spring.datasource.type: com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name: oracle.jdbc.OracleDriver
我的oracle版本:oracle数据库12c企业版发行版
是否需要重写默认连接/stmt/resultset属性?我不确定,这是否与连接有关。我无法模拟/找出发生这种情况时的模式。
使用的查询是 SELECT COLUMN_1, COLUMN_2, COLUMN_3....COLUMN_30 FROM TABLE_NAME where TIMESTAMP < ? and TIMESTAMP >= ?
创建preparedstatement后提供的时间戳 stmt.setTimestamp(1, timestamp); stmt.setTimestamp(2, timestamp);
我曾经调试过这个。我观察到的一个错误是resultset.next()抛出这个提取顺序错误。在结果集中展开委托对象时,观察到的字段是
isAllFetched = false
isDoneFetchingRows = false
currentRow = 7035999
fetchedrowCount = 7036000
这是resultset.next()将提取抛出序列的点
暂无答案!
目前还没有任何答案,快来回答吧!