【发布时间】:2013-06-16 05:36:54
【问题描述】:
我在我的 java 代码中运行一个简单的更新语句到一个 oracle 数据库(JDBC 调用),它会在找到记录时更新,但当记录不存在时我得到“java.sql.SQLException: ORA-01002: fetch乱序”异常。这是我的代码,为什么异常?我应该在哪里改进它。代码示例会很有帮助。
public String preformUpdate(String someValue){
ResultSet rs;
String result = "Update failed record not found.";
StringBuffer sb = new StringBuffer();
try{
conn = DBConnect.getInstance().dbOracleConnect();
StringBuffer sbUpdate = new StringBuffer();
sbUpdate = new StringBuffer("UPDATE sometable ");
sbUpdate.append("SET value1 = ? ");
sbUpdate.append("WHERE value2 = ?" );
ps = conn.prepareStatement(sbUpdate.toString());
ps.setString(1, "0");
ps.setString(2, someValue);
rs = ps.executeQuery();
if (rs.next()){
result = "Value updated";
}
}
catch (Exception e){
e.printStackTrace();
}
finally{
JDBCHelper.close(cs);
JDBCHelper.close(conn);
}
return result;
}
【问题讨论】:
-
我不是 Java 开发人员,但根据我对其他语言的了解,我认为 rs.next() 可能是问题所在,因为更新查询可能不会返回任何结果集,所以next() 失败...
-
您以前没有用 Java 编写过 SQL 插入代码吗?
-
我只是在学习,如果这是一个愚蠢的问题,请见谅。