java更新clob字段出现的问题。怪。。。
/* 查询此CLOB对象并锁定 */
rs = stmt.executeQuery("SELECT * FROM "+ TableName +" "+ WhereString +" for update");
//TableName 是表名, WhereString 是条件
while (rs.next()) {
/* 取出此CLOB对象 */
for (int i=0;i<Location_sql.length;i++){
//判断是clob字段,是执行更新操作
if (Location_sign[i].equals("1")){
clob = rs.getClob(Location_sql[i]); //Location_sql[i]是字段名
bb = Location_value[i].getBytes(); //处理要更新的值 Location_value[i]是对应clob值
out = ((OracleClob) clob).getAsciiOutputStream(); //处理要更新的值
out.write(bb,0,bb.length) ; //处理要更新的值
out.flush(); //处理要更新的值
ptmt = con.prepareStatement("update " + TableName +" set "+ Location_sql[i] +"=?" + " " + WhereString);
ptmt.setClob(1, clob);
ptmt.executeUpdate();
//设定更新clob字段
out.close();
}}
}
con.commit();
/* 恢复原提交状态 */
con.setAutoCommit(true);
=============对同一字段更新几次就出现死锁,有时就一次,有时就2次或3次=======================================