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;
}
简单情况:
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;
}
解决方案 »
- 存储过程里用了数据链路 程序调的话报cursor closed
- hibernate 调用 存储过程 问题
- 帮我看下这个javaEE5 下的 web.xml
- tomcat能支持多少用户同时使用?
- maxthon浏览器关闭的响应事件
- cvs的配置权限**************
- 送分:请帮我解释一下这个url的意思
- 以下几行代码用在servlet里面,为什么绝大多数的时候,得到的文件都比原来的少,不完整的,导致最终打不开文件!?
- 我的jsp连接数据库时,出现以下错误呀!
- 关于rabbitmq的两个问题[说法/持久化]
- 我有一个单选控件,当我一点他时就提交,如何实现
- 华资软件现在开始承接各种软件外包项目!!
然后再更新
缺少一个清空的操作