我编写了一个Java应用程序来生成报告。
在生成报告时,它停止并且堆栈跟踪显示了此错误:
java.sql.SQLException: Closed Resultset: next
at oracle.jdbc.driver.InsensitiveScrollableResultSet.next(InsensitiveScrollableResultSet.java:565)
at diferentedb.Clasa.connectare(Clasa.java:2693)
at diferentedb.Diferentedb.main(Diferentedb.java:11)
堆栈跟踪显示错误在此行上:
while(rs69.next()) {
如何解决此错误?
我将代码粘贴到了问题中
我已验证ResultSet在使用前未关闭,但尚未关闭
Statement st69 = con.createStatement();
String id_d112 = "";
String an_d112 = "";
String link_d112 = "";
String d112_2019 = "";
String d112_2018 = "";
String d112_2017 = "";
String d112_2016 = "";
String d112_2015 = "";
String d112_2014 = "";
String d112_2013 = "";
String d112_2012 = "";
String d112_2011 = "";
String d112_2010 = "";
String d112_2009 = "";
ResultSet rs69b = null;
String str_d112 = "";
String str_d112_tot = "";
String sql69 = "select id from dec_declaratii where tip_declaratie='D112' and id>"+id5+" and cod_stare_prelucrare_intern in ('DUK_VLD','GEN_MSJ') minus select id from dec_unk.a_d112_2019";
ResultSet rs69 = st69.executeQuery(sql69);
Statement st69b = null;
while(rs69.next()) { <<<<--------------- Line with error
id_d112 = rs69.getString(1);
counter++;
st69b = con.createStatement();
String sql69b = "select anul_duk from dec_declaratii where id="+id_d112;
rs69b = st69b.executeQuery(sql69b);
while(rs69b.next()) {
an_d112 = rs69b.getString(1);
link_d112 = id_d112+an_d112;
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2019")) {
d112_2019+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2018")) {
d112_2018+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2017")) {
d112_2017+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2016")) {
d112_2016+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2015")) {
d112_2015+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2014")) {
d112_2014+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2013")) {
d112_2013+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2012")) {
d112_2012+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2011")) {
d112_2011+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2011")) {
d112_2010+=link_d112.substring(0, link_d112.length()-4)+", ";
}
if(link_d112.substring(link_d112.length()-4, link_d112.length()).equals("2011")) {
d112_2009+=link_d112.substring(0, link_d112.length()-4)+", ";
}
}
rs69.close();
st69.close();
}
rs69b.close();
st69b.close();
我希望该应用生成报告并修复错误。
预先感谢
答案 0 :(得分:0)
您在rs69b结束时关闭rs69