当前页面: 开发资料首页 → JSP 专题 → 请大家帮忙CLOB字段更新的疑惑
请大家帮忙CLOB字段更新的疑惑
摘要: 请大家帮忙CLOB字段更新的疑惑
CLOB字段更新的疑惑
简单情况:
Java平台。JDBC Thin驱动。
Clob字段。
目的:
更新CLOB字段的内容。
操作:
记录1Clob字段的内容为“1234567”,我想更新其为“a”。但每次操作完成后读出来的CLOB字段的内容为“a234567”,看来是只更新了原CLOB字段内容中从开始到新字符串长度这一段的内容。
请问各位有没有遇到过类似的问题,是怎么解决的?
strSQL="select content from testclob where id="+id+" for update";
rs=cn.getResultSet(strSQL);
if(rs.next()){
CLOB clob = ((OracleResultSet)rs).getCLOB(1);
clob.setString(1,"更新"+id);
strSQL="update testclob set content=? where id="+id;
System.out.println(strSQL);
cn.setClob(strSQL,1,clob); // col 插入的字段的位置,问号?
}
rs.close();
cn.stmtClose();
.....
public PreparedStatement setClob(String strSQL,int col,CLOB clob){
try{
PreparedStatement pstmt = cn.prepareStatement(strSQL);
pstmt.setClob(col,clob);
pstmt.executeUpdate();
pstmt.close();
}catch(Exception e){
System.out.println("insert clob error!!!"+e);
}
return null;
}
参考一下
http://java.ccidnet.com/art/3737/20030601/467141_1.html
我的写法为什么不对
在获取Clob字段后,应该先清空该字段
然后再更新
缺少一个清空的操作
首先谢谢楼上的朋友,不过你能说的具体些吗,用什么方法进行清空操作呢。
update testclob t set t.content = empty_clob() where ...