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
相关文章
|
7月前
|
SQL Oracle 关系型数据库
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
147 2
|
7月前
|
SQL Oracle 关系型数据库
java往oracle存clob类型的值时,字符长度过长怎么办?
java往oracle存clob类型的值时,字符长度过长怎么办?
450 1
|
7月前
|
SQL Oracle 关系型数据库
Oracle之如何限制字段内数据的录入
Oracle之如何限制字段内数据的录入
87 0
|
7月前
|
SQL Oracle 关系型数据库
Oracle之如何处理空值
Oracle之如何处理空值
183 0
|
7月前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
105 0
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
分布式计算 Oracle 关系型数据库
实时计算 Flink版产品使用问题之获取Oracle的数据时无法获取clob类型的数据,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
存储 Oracle 关系型数据库
oracle 过滤字段中的中文,不再洋不洋土不土
oracle 过滤字段中的中文,不再洋不洋土不土
170 0
|
7月前
|
资源调度 Oracle 关系型数据库
实时计算 Flink版产品使用合集之同步Oracle数据时,一张表产生了大量的连接数,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
存储 Oracle 安全
Oracle 12c的不可见字段:数据的“隐形斗篷”
【4月更文挑战第19天】Oracle 12c引入了不可见字段,这是一种隐藏数据列的特性,用于增强数据安全性和实现业务逻辑。不可见字段在常规查询中不显示,但参与数据操作,适合存储敏感信息或内部元数据。创建时只需在列定义中指定“INVISIBLE”属性。虽然有其限制,如特定查询可能暴露,但正确使用能有效提升数据安全性。了解和利用这一功能对数据管理员至关重要。