:COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0601E 语句句柄无效或语句已关闭。SQLSTATE=S1000
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throwClosedError(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2ResultSet.checkHandlesAndIndex(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2ResultSet.next(Unknown Source)
.请问有人有遇到过吗,谁知道如何解决?
2 个解决方案
#1
兄台,用executeBatch来做批量处理,Statement和PreparedStatement都可以。
rs一次开太多会有这个问题:
con=***
ps=***
rs=***
for(...){
rs = ps.execute(sql) -----就是这种方式,开太多会出问题。
}
rs.close
ps.close
con.close
db2能支持到2000?我的oracle92默认只有300。。。
rs一次开太多会有这个问题:
con=***
ps=***
rs=***
for(...){
rs = ps.execute(sql) -----就是这种方式,开太多会出问题。
}
rs.close
ps.close
con.close
db2能支持到2000?我的oracle92默认只有300。。。
#2
目前有两个现象:
1 相同的程序,在windows的java环境下可以顺利完成,移植到linux环境下就会出现rs.next()超过2000时候会出错。
2 如果linux下只打开rs,不做其它事务操作,可以顺利遍历所有的rs结果。
请问有什么线索吗?
1 相同的程序,在windows的java环境下可以顺利完成,移植到linux环境下就会出现rs.next()超过2000时候会出错。
2 如果linux下只打开rs,不做其它事务操作,可以顺利遍历所有的rs结果。
请问有什么线索吗?
#1
兄台,用executeBatch来做批量处理,Statement和PreparedStatement都可以。
rs一次开太多会有这个问题:
con=***
ps=***
rs=***
for(...){
rs = ps.execute(sql) -----就是这种方式,开太多会出问题。
}
rs.close
ps.close
con.close
db2能支持到2000?我的oracle92默认只有300。。。
rs一次开太多会有这个问题:
con=***
ps=***
rs=***
for(...){
rs = ps.execute(sql) -----就是这种方式,开太多会出问题。
}
rs.close
ps.close
con.close
db2能支持到2000?我的oracle92默认只有300。。。
#2
目前有两个现象:
1 相同的程序,在windows的java环境下可以顺利完成,移植到linux环境下就会出现rs.next()超过2000时候会出错。
2 如果linux下只打开rs,不做其它事务操作,可以顺利遍历所有的rs结果。
请问有什么线索吗?
1 相同的程序,在windows的java环境下可以顺利完成,移植到linux环境下就会出现rs.next()超过2000时候会出错。
2 如果linux下只打开rs,不做其它事务操作,可以顺利遍历所有的rs结果。
请问有什么线索吗?