insert into table value('id','clobcol')执行这个sql时候 传入的 clobcol 字符串长度大于4000的时候会爆 string literal too long 的错。想用update的方法解决
oracle.sql.CLOB clob;
clob.putString(1, clobValue); putString的方法都废弃不用了。
)
请问有没有好的办法给一个。
oracle.sql.CLOB clob;
clob.putString(1, clobValue); putString的方法都废弃不用了。
)
请问有没有好的办法给一个。
先写成empty_clob()
再更新dataBaseService.runQuery(" update "+tableName+" set "+columnName+" =empty_clob() where " +primaryKeySql);
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tran = session.beginTransaction();
Connection conn = session.connection();
Statement pstmt = null;
try {
String sql = "select "+columnName+" from "+tableName+" where "+primaryKeySql+" for update";
pstmt = conn.prepareStatement(sql);
java.sql.ResultSet rs= pstmt.executeQuery(sql);
if(rs.next()){
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob(1);
clob.setString(1, data);
sql = " update "+tableName+" set "+columnName+" =? where " +primaryKeySql;
PreparedStatement p = conn.prepareStatement(sql);
p.setClob(1, clob);
p.executeUpdate();
}
tran.commit();
} catch (Exception e) {
tran.rollback();
e.printStackTrace();
} finally {
clob.putString(1,str);
ps.setClob(1, clob);
这个方法可以直接插入数据库,要不然就得先插入一条空数据,然后再更新http://blog.csdn.net/wazj0517/archive/2006/10/19/1341074.aspx