答案:先用PrepareStatement 对象插入(
这时一定要设定Connection对象的AutoCommit为false,即
conn.setAutoCommit(false);
),语句这样写:
String sql = "INSERT INTO flower_news (flower_news_id,news_content,news_author) VALUES (flower_news_id_s.nextval,empty_clob(),?)";
这里news_content字段为clob值。
然后再用select news_content from folwer_news where ....取出刚才插入的那条记录。
再看下面的代码:
rs = st.executeQuery(sql);
java.sql.Clob clob ;
if (rs.next()) {
clob = ((OracleResultSet)rs).getClob(1);
oracle.sql.CLOB my_clob = (oracle.sql.CLOB)clob;
OutputStream writer = my_clob.getAsciiOutputStream();
byte[] contentStr = this.getContent().getBytes();
writer.write(contentStr);
writer.flush();
writer.close();
}
conn.commit();//到最后才提交
其中这个方法我是取到要插入的字符串
你看看吧,照这样做是没有问题的
在整个过程中你都不能提交,否则是不会成功的
上一个:处理blob的完整例子
下一个:通过jdbc-odbc往Access数据库中OLE类型的表中插入数据的例子