-
必须保证在一个事务内处理:JDBC connection autocommit conn.setAutoCommit(false);
-
插入记录用empty_clob()函数带入空CLOB字段:Insert into table with CLOB column as empty_clob();
-
用select把空CLOB对象查出,并用for update子句来锁定这条记录:Select clob column with “for update” option like “select clob_field from clob_table where rowid=1 for update”;
-
将返回的CLOB字段对象由JDK的Clob转换成Oracle 库的CLOB对象:Turn the return from java.sql.Clob to Oracle.sql.CLOB:
Clob clob = (Clob)rs.getClob("clob_field");
oracle.sql.CLOB tmpclob = (oracle.sql.CLOB)clob; -
用字符串填充该CLOB对象:
BufferedWriter bw = new BufferedWriter(tmpclob.getCharacterOutputStream());
bw.write(clobClValueArray.get(i).toString());
bw.flush();
bw.close(); -
用结构化语句对象PreparedStatement实现DML操作:
PreparedStatement pstmt1 = conn.prepareStatement(“update clob_table set clob_field=? Where rowid=1”);
pstmt1.setClob(1, tmpclob);
pstmt1.execute(); -
把事务提交实现CLOB字段操作。Commit the update: conn.commit();
-
读取CLOB内容也很简单:
PreparedStatement pstmt = conn.prepareStatement("select clob_field from clob_table where rowid=1");
ResultSet rs = pstmt.executeQuery();
Clob clob = (Clob)rs.getClob("clob_field");
String str;
if(null != clob){
str = clob.getSubString((long)1, clob.length());
}(文章来源:http://www.mfqyw.com/)
JDBC 处理Oracle Clob字段
最新推荐文章于 2021-10-15 18:10:43 发布