EMPTY_CLOB()/EMPTY_BLOB()使用
在向带有Lob类型的字段加入数据时,
使用EMPTY_CLOB()初始化CLOB字段,
然后再使用输出流向字段中写数据(这些数据往往都是字节流量相对较大的).
CREATE TABLE article( subject VARCHAR2(50 char), content CLOB , tstamp TIMESTAMP DEFAULT SYSDATE ); --使用EMPTY_CLOB()来初始化CLOB字段 String strSql = "INSERT INTO article(subject,content) VALUES('文章标题:Empty_clob()的使用方法',EMPTY_CLOB())"; Connection conn = db.getConnection(); conn.setAutoCommit(false); PreparedStatement ptmt = conn.prepareStatement(sqlBuffer.toString()); ptmt.executeUpdate(); strSql = "select content from article where subject = "+subject+" for update "; ResultSet rs = ptmt.executeQuery(strSql); if (rs.next()) { /* 取出此CLOB对象 */ oracle.sql.CLOB clob = null; clob = (oracle.sql.CLOB) rs.getClob("content"); /* 向CLOB对象中写入数据 */ BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream()); out.write(content); out.close(); out = null; conn.commit(); }
学习到了。
1. 先插入EMPTY_CLOB() 空对象。
2. 查询获取clob对象
3. 创建buferedwriter 对象 构成参数是 clob对象的strea流 也可以这样写
BufferedWriter out = new BufferedWriter(clob.setCharacterStream(clob.length()), 1024);
4. 然后 通过writer 进行writeer 最后 clsoe掉。 大文本就已经写入数据库字段了。