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 字段对象由 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. 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
相关文章
|
2月前
|
SQL Oracle 关系型数据库
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
32 2
|
4月前
|
SQL Oracle 关系型数据库
Oracle之如何限制字段内数据的录入
Oracle之如何限制字段内数据的录入
42 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle之如何处理空值
Oracle之如何处理空值
51 0
|
4月前
|
SQL Oracle 关系型数据库
java往oracle存clob类型的值时,字符长度过长怎么办?
java往oracle存clob类型的值时,字符长度过长怎么办?
70 1
|
3月前
|
存储 Oracle 关系型数据库
oracle 过滤字段中的中文,不再洋不洋土不土
oracle 过滤字段中的中文,不再洋不洋土不土
52 0
|
2月前
|
Oracle 关系型数据库 数据库
Flink Sink to Oracle 存在字段CLOB类型,如何处理错误”ORA-01461: 仅能绑定要插入LONG的LONG值“
做Flink CDC同步数据过程中,目标是Oracle数据库,其中某个字段较大被设置为CLOB类型,其中会遇到异常,”ORA-01461: 仅能绑定要插入LONG的LONG值“
|
7月前
|
Oracle 关系型数据库 Java
java处理oracle的Clob字段类型的坑和2种解决办法
java处理oracle的Clob字段类型的坑和2种解决办法
|
8月前
|
Oracle 关系型数据库
Oracle 根据某个字段获取第一条数据
Oracle 根据某个字段获取第一条数据
|
8月前
|
存储 Oracle 关系型数据库
Oracle——根据拼音首字母模糊查询某个字段
Oracle——根据拼音首字母模糊查询某个字段
|
8月前
|
Oracle 关系型数据库 数据库
Oracle——给数据库的某个字段设置随机数
Oracle——给数据库的某个字段设置随机数

推荐镜像

更多