gpt4 book ai didi

java - 为什么 While (rs.next()) 语句在第一次迭代后结束?

转载 作者:搜寻专家 更新时间:2023-10-31 08:05:07 26 4
gpt4 key购买 nike

我正在使用 SELECT 语句从表中获取数据,然后将其插入到另一个表中。然而,“stmt.executeQuery(query);”这一行从表中插入第一行然后退出。当我注释掉这一行时,while 循环遍历所有打印出来的行。堆栈跟踪没有显示任何错误。为什么会这样?

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();
}

最佳答案

您正在重新使用用于在循环的最后一行生成 rsStatement

这将关闭 ResultSet rs。作为stated in the documentation :

A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.

您需要使用第二个 Statement 对象来执行 INSERT 语句。

关于java - 为什么 While (rs.next()) 语句在第一次迭代后结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com