我没有找到SQLExeption的原因,我在while(dbrs.next())
处找到了它。很简单,可以正常工作,但是在更新到Oracle Server 19之后,出现了此错误。我仍然使用相同的帐户在Oracle Developer中获得了一个结果集。
Statement st = conn.createStatement();
if (Oracle){
ResultSet dbrs = st.executeQuery("select table_name from all_tables");
while(dbrs.next()){
if (dbrs.getString(1).equals(G_IN)){
st.execute("DROP TABLE "+G_IN);
System.out.println(G_IN+" gelöscht");
}
}
dbrs.close();
}else{
String loeschen="DROP TABLE IF EXISTS \"" + G_IN +"\"";
System.out.println(loeschen);
st.execute( loeschen );
}
您不应该像while循环那样重复使用Statement对象。要执行新查询,您需要使用新的Statement对象。
替换
st.execute("DROP TABLE "+G_IN);
with
conn.createStatement().execute("DROP TABLE "+G_IN);
它应该工作。