*******clob问题***********

现在的问题是
比如现在改字段的数据为:22222222222222222222222222222222
我现在修改成:11111111
但是最后的结果是:111111111112222222222222222222222
我看了网上的很多方法,估计结构都是一样的。
其实问题就是如果我第一次输入了2m大小的数据。
我现在怎么能让他变成2k的?






3、替换CLOB对象(将原CLOB对象清除,换成一个全新的CLOB对象)


public static void clobReplace(String infile) throws Exception

{

/* 设定不自动提交 */

boolean defaultCommit = conn.getAutoCommit();

conn.setAutoCommit(false);


try {

/* 清空原CLOB对象 */

stmt.executeUpdate("UPDATE TEST_CLOB SET CLOBCOL=EMPTY_CLOB() WHERE ID='111'");

/* 查询CLOB对象并锁定 */

ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM TEST_CLOB WHERE ID='111' FOR UPDATE");

while (rs.next()) {

/* 获取此CLOB对象 */

oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");

/* 更新数据 */

BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());

BufferedReader in = new BufferedReader(new FileReader(infile));

int c;

while ((c=in.read())!=-1) {

out.write(c);

}

in.close();

out.close();

}

/* 正式提交 */

conn.commit();

} catch (Exception ex) {

/* 出错回滚 */

conn.rollback();

throw ex;

}


/* 恢复原提交状态 */

conn.setAutoCommit(defaultCommit);

}

posted on 2005-07-12 14:59  轻松逍遥子  阅读(300)  评论(0编辑  收藏  举报