java代码:
String sql="SELECT BBSCONTENT FROM FOCUSBBS WHERE ID="+ID+" FOR UPDATE";
try {
Connection conn= DBInterfaceImpl.getInstance().getConnection();
conn.setAutoCommit(false);
Statement st = conn.createStatement();
st.executeUpdate("UPDATE FOCUSBBS SET BBSCONTENT=EMPTY_CLOB() WHERE ID="+ID+"");
ResultSet rst = st.executeQuery(sql);
if (rst.next())
{
//得到java.sql.Clob对象后强制转换为oracle.sql.CLOB
oracle.sql.CLOB clob = (oracle.sql.CLOB) rst.getClob("BBSCONTENT");
Writer outStream = clob.getCharacterOutputStream();
//bbsContent是传入的字符串,定义:String bbsContent
char[] c = bbsContent.toCharArray();
try {
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
conn.commit();
conn.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
使用上面代码进行修改的,但程序运行到st.executeUpdate("UPDATE FOCUSBBS SET BBSCONTENT=EMPTY_CLOB() WHERE URL='"+url+"'"); 时就卡在那不动了,执行不下去。使用alter system kill session 'sid,serial#'把会话终止后,在pl/sql里运行UPDATE FOCUSBBS SET BBSCONTENT=EMPTY_CLOB() WHERE ID=11;还是一样状况,就死在那不动了。有没有人知道怎么解决这一问题啊???
String sql="SELECT BBSCONTENT FROM FOCUSBBS WHERE ID="+ID+" FOR UPDATE";
try {
Connection conn= DBInterfaceImpl.getInstance().getConnection();
conn.setAutoCommit(false);
Statement st = conn.createStatement();
st.executeUpdate("UPDATE FOCUSBBS SET BBSCONTENT=EMPTY_CLOB() WHERE ID="+ID+"");
ResultSet rst = st.executeQuery(sql);
if (rst.next())
{
//得到java.sql.Clob对象后强制转换为oracle.sql.CLOB
oracle.sql.CLOB clob = (oracle.sql.CLOB) rst.getClob("BBSCONTENT");
Writer outStream = clob.getCharacterOutputStream();
//bbsContent是传入的字符串,定义:String bbsContent
char[] c = bbsContent.toCharArray();
try {
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
conn.commit();
conn.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
使用上面代码进行修改的,但程序运行到st.executeUpdate("UPDATE FOCUSBBS SET BBSCONTENT=EMPTY_CLOB() WHERE URL='"+url+"'"); 时就卡在那不动了,执行不下去。使用alter system kill session 'sid,serial#'把会话终止后,在pl/sql里运行UPDATE FOCUSBBS SET BBSCONTENT=EMPTY_CLOB() WHERE ID=11;还是一样状况,就死在那不动了。有没有人知道怎么解决这一问题啊???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货