JDBC 处理Oracle Clob字段

  1. 必须保证在一个事务内处理:JDBC connection autocommit conn.setAutoCommit(false);

  2. 插入记录用empty_clob()函数带入空CLOB字段:Insert into table with CLOB column as empty_clob();

  3. 用select把空CLOB对象查出,并用for update子句来锁定这条记录:Select clob column with “for update” option like “select clob_field from clob_table where rowid=1 for update”;

  4. 将返回的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;

  5. 用字符串填充该CLOB对象:
              BufferedWriter bw = new BufferedWriter(tmpclob.getCharacterOutputStream()); 
              bw.write(clobClValueArray.get(i).toString()); 
              bw.flush();
              bw.close();

  6. 用结构化语句对象PreparedStatement实现DML操作:
        PreparedStatement pstmt1 = conn.prepareStatement(“update clob_table set clob_field=? Where rowid=1”);
        pstmt1.setClob(1, tmpclob);
        pstmt1.execute();

  7. 把事务提交实现CLOB字段操作。Commit the update: conn.commit();

  8. 读取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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值