数据库中某个表tab_info的某一条记录被锁住了;即:该条记录无法更新update,但是可以读取select;现要查询到底是执行什么sql语句的时候把它给锁住的;或者更详细的信息;

解决方案 »

  1.   

    怀疑是使用select for update的时候把记录给锁住了,但是需要更新clob字段,所以只有采用select for update语句;代码如下:            //          更新Blob字段;
               //Thread.currentThread().sleep(delay);
                String sql_update="select content from tab_info where id='"+infoId+"' for update";
                DBConnect db=new DBConnect();
                ResultSet rs=db.executeQuery(sql_update);
            //db.prepareStatement(sql_update);
                    String content_len="0";
            while(rs.next()){
             java.sql.Clob myclob2=rs.getClob("content");          char[] c=(content==null?"这家伙很懒哦!":content).toCharArray();
             if(c.length<myclob2.length()) {
             myclob2.truncate(c.length);
             }
             CLOB myclob=(CLOB)myclob2;          Writer os=myclob.getCharacterOutputStream();                        content_len=Integer.toString(c.length);
             os.write(c,0,c.length);
             os.flush();
             os.close();
            }