public boolean insertData(String str) throws SQLException,
FileNotFoundException, IOException {
boolean bool = false;
Connection conn = null;
PreparedStatement pstmt1 = null;
PreparedStatement pstmt2 = null;
ResultSet rst = null;
try {
String sql = "INSERT INTO T_TEST VALUES ('111', EMPTY_CLOB())";
conn = Common.getConnection();
conn.setAutoCommit(false);
pstmt1 = conn.prepareStatement(sql);
pstmt1.execute();
sql = "SELECT CLOBCOL FROM T_TEST WHERE ID='111' FOR UPDATE";
pstmt2 = conn.prepareStatement(sql);
rst = pstmt2.executeQuery();
oracle.sql.CLOB clob = null;
while (rst.next()) {
// 取出此CLOB对象
clob = (oracle.sql.CLOB) rst.getClob("CLOBCOL");
}
// 向CLOB对象中写入数据
Writer out = clob.getCharacterOutputStream();
out.write(str);
//out.close();
bool = true;
} finally {
FreeResource.closeResultSet(rst);
FreeResource.closePstmt(pstmt1);
FreeResource.closeStmt(pstmt2);
FreeResource.closeConnection(conn, bool);
}
return bool;
}
如果运行out.close();那么执行到FreeResource.closeResultSet(rst);后什么都不执行了,按照上面的方法执行,发现创建的clob数据是空的,请问如何解决
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货