为什么While(rs.next())语句在第一次迭代后结束?
我正在使用SELECT语句从表中获取数据,然后将其插入到另一个表中。但是,行“ stmt.executeQuery(query);”
从表中插入第一行然后退出。当我注释掉这一行时,while循环遍历所有行,将它们打印出来。stacktrace没有显示任何错误。为什么会这样呢?
try{ String query = "SELECT * FROM "+schema_name+"."+table;
rs = stmt.executeQuery(query);
while (rs.next()) {
String bundle = rs.getString("BUNDLE");
String project_cd = rs.getString("PROJECT_CD");
String dropper = rs.getString("DROPPER");
String week = rs.getString("WEEK");
String drop_dt = rs.getString("DROP_DT").replace(" 00:00:00.0","");
query = "INSERT INTO INDUCTION_INFO (BUNDLE, PROJECT_CD, DROPPER, WEEK, DROP_DT) "
+ "VALUES ("
+ bundle+","
+ "'"+project_cd+"',"
+ dropper+","
+ week+","
+ "to_date('"+drop_dt+"','YYYY-MM-DD'))";
System.out.println(query);
stmt.executeQuery(query);
}
}catch(Exception e){
e.printStackTrace();
}
回答:
您将重新使用循环最后一行中Statement
产生rs
的那个。
这将关闭ResultSet
rs
。如文档中所述:
阿
ResultSet
当对象将自动关闭Statement
生成它对象被关闭时,重新执行,或用于检索从多个结果的序列中的下一结果。
您需要使用第二个Statement
对象来执行INSERT
语句。
以上是 为什么While(rs.next())语句在第一次迭代后结束? 的全部内容, 来源链接: utcz.com/qa/408374.html