Oracle 如何处理CLOB字段-阿里云开发者社区

开发者社区> 科技小能手> 正文

Oracle 如何处理CLOB字段

简介:
+关注继续查看
  1. 1.       必须保证在一个事务内处理:JDBC connection autocommit conn.setAutoCommit(false);

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

  3. 3.       select把空CLOB对象查出,注意必须带for update子句来告知数据库接下来要修改该记录,否则SQL语句会返回错误告诉你没有for update子句:Select clob column with “for update” option like “select clob_field from clob_table where rowid=1 for update”;

  4. 4.       将返回的CLOB字段对象由JDKClob转换成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. 5.  用字符串填充该CLOB对象:
  6.       BufferedWriter bw = new BufferedWriter(tmpclob.getCharacterOutputStream()); 
  7.       bw.write(clobClValueArray.get(i).toString()); 
  8.       bw.flush();
  9.       bw.close();

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

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

  3. 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());

    }

本文转自 dannyy1026 51CTO博客,原文链接:
http://blog.51cto.com/dannyyuan/550861

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle数据库死锁问题的查询与处理
Oracle数据库死锁问题的查询与处理 近来在工作中遇到了oracle数据库死锁问题,下面是转载的问题查询与处理方法,侵删。 一、数据库死锁的现象 程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。
1951 0
【Oracle】Oracle如何查看所有表和字段以及表注释和字段注释?其实很简单!!
小伙伴们按照我写的文章顺利安装好Oracle数据库后,又在微信上问我:我想查看Oracle数据库中所有表和字段以及表注释和字段的注释,我该怎么操作呢?看着小伙伴们这么高的学习热情,这些问题我都安排上了!这不,解决方案来了!
20 0
[Struts]处理表单中值为空的日期类型字段
在示范中心项目中,我们把ActionForm中日期类型的字段指定为String类型,而在对应的JavaBean中指定为java.sql.Date类型。当用户提交表单的时候,在Action里使用BeanUtils.copyProperties()方法从ActionForm构造JavaBean对象(详见利用BeanUtils在对象间复制属性)。
1031 0
**SQL某一表中重复某一字段重复记录查询与处理
sql某一表中重复某一字段重复记录查询与处理   1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)>1 2.
733 0
oracle修改表字段
增加字段     alter   table   docdsp     add   dspcode   char(200)     删除字段     ALTER   TABLE   table_NAME   DROP   COLUMN   column_NAME     修改字段类型     ALTER   TABLE   table_name     ALTER   COLUMN   column_name   new_data_type     改名     sp_rename     更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
588 0
Oracle运维笔记之ORA-27102错误处理
Oracle运维笔记之ORA-27102错误处理
1485 0
解决Druid设置Oracle的Clob字段时的小坑
众所周知,Oracle有很多坑, 所以才有了去IOE。 在使用Druid做数据库连接池后,其实偶尔也会碰到小坑,这就是使用开源项目所必须去填平的。【如果使用不开源的产品,那就不是坑,而是陷阱了,你都不知道怎么去填坑】 用Druid连接池,通过JDBC往Oracle数据库的Clob字段插入数据,或者更新数据时,一个问题出现了。
2014 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载