`
yu46612143
  • 浏览: 28242 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

clob读取

阅读更多
oracle中最常用的varcher2类型最多只能存储4000个字节的内容,一般情况下是能够满足用户的需求的。但是在一些特殊情况下(如要存储图片或者要存储的内容超过了4000个字节),varcher2就满足不了这个需求了。这个时候我们可以借助于oracle里面的大字段CLOB后者BLOB。举例如下:
        首先,在数据库中建一张表news,为了简单起见,只有一个字段content(CLOB)。做好准备工作后就可以开始我们的CLOB之旅了。

        以下是插入CLOB的代码:

         import java.sql.*;
         import java.io.*;

        public class TestClob{
               public void TestClob(){}
                      public static void main(String args[]){
                              try{
                                   Class.forName("oracle.jdbc.driver.OracleDriver");
                                  Connectionconn=DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt");
 
                                 conn.setAutoCommit(false);
                                //第一步:插入一个空的CLOB
                                String sql1="insert into news(content,id) values (EMPTY_CLOB(),'1')";
                                PreparedStatement ps1=conn.divpareStatement(sql1);
                                ps1.executeUpdate();
                                ps1.close();
 
                                //第二步:取出该CLOB
                                String sql2="select content from news for update";
                                PreparedStatement ps2=conn.divpareStatement(sql2);
                                ResultSet rs2=ps2.executeQuery();
                                while (rs2.next()){
                                        oracle.sql.CLOB clob=(oracle.sql.CLOB)rs2.getClob(1);
                                        BufferedWriter out=new BufferedWriter(clob.getCharacterOutputStream());
                                        String content="1234";//假定这是新闻的内容,当然可以也可以是其他的内容
                                        out.write(content,0,content.length());
                                        out.close();
                                                               }
                               conn.commit();
                             }
     catch(Exception e){e.printStackTrace();}
                                                                                        }

                                                                }

既然插入进去了,那我们还得要检验一下:插进去的是不是你想插进去的内容?以下就是读取CLOB的代码:

import java.sql.*;
import java.io.*;

public class ReadClob{
       public void ReadClob(){}
              public static void main(String args[]){
              try{
                  Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt");                                                                               
   
   String sql1="select content from news";
   PreparedStatement ps1=conn.divpareStatement(sql1);
   ResultSet rs1=ps1.executeQuery();
 
   while (rs1.next()){

    oracle.sql.CLOB clob=(oracle.sql.CLOB)rs1.getClob(1);
    BufferedReader in=new BufferedReader(clob.getCharacterStream());
            StringWriter out=new StringWriter();
            int c;
            while((c=in.read())!=-1){
              out.write(c);
                                 }
            String content=out.toString();
            System.out.println (content);//输出CLOB内容
               }
         }
     catch(Exception e){e.printStackTrace();}
     }}
分享到:
评论

相关推荐

    读取oracle数据库中clob字段的值

    ### 读取Oracle数据库中CLOB字段的值 在处理Oracle数据库时,经常会遇到需要读取CLOB(Character Large Object)类型字段的情况。CLOB主要用于存储大量的文本数据,如文章、文档等内容。由于CLOB类型的数据量可能...

    DELPHI的CLOB和BLOB存取处理.zip_DELPHI的CLOB和BLOB存取处理_hallzgz

    - CLOB字段可通过TField对象的AsWideString属性读取或设置,BLOB字段通过AsBlob属性。 - 读取大对象时,可以使用Stream对象,比如TMemoryStream,通过TField对象的LoadFromStream和SaveToStream方法实现数据的读写...

    数据库读取clob字段

    ### 数据库读取CLOB字段 #### 概述 在Oracle数据库中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型。CLOB能够容纳4GB的文本信息,适用于存储如文章、报告或者XML文档等大型文本数据。...

    mybatis 对clob类型转换

    这个TypeHandler实现了将String转换为CLOB并插入数据库,以及从CLOB读取回String。 4. **在Mapper XML文件中使用** 在Mapper的XML文件中,确保在CLOB类型的字段上使用了正确的TypeHandler,例如: ```xml ...

    jdbc 处理clob类型字段

    查询CLOB字段时,我们可以使用ResultSet的getClob方法获取Clob对象,然后通过getClob.length()或getSubString方法读取数据。例如: ```java String sql = "SELECT my_clob_column FROM my_table WHERE id = ?"; ...

    ibatis 读取oracle clob类型

    ibatis 读取oracle clob类型

    CLOB、BLOB___CLOB与BLOB的区别

    在读取 CLOB 数据时,可以使用 ResultSet 的 getCharacterStream 方法来读取数据;在插入 CLOB 数据时,可以使用 PreparedStatement 的 setString 方法来插入数据;在更新 CLOB 数据时,可以使用 ResultSet 的 ...

    jsp读取大对象CLOB并生成xml文件示例

    本示例将讲解如何在JSP中读取数据库中的CLOB类型数据,并将其转换为XML文件。这在处理大数据量的文本内容时,如日志、报告或者复杂结构的数据,非常有用。 首先,我们需要一个包含CLOB字段的数据库表。例如,我们有...

    dblink_clob字段异常解决方案

    dblink_clob字段异常解决方案 在数据库.link连接远程数据库时,经常会遇到无法使用CLOB字段的问题,这是因为CLOB字段在远程数据库中的处理方式与本地数据库不同所导致的。下面将讨论解决dblink_clob字段异常的解决...

    jsp读取大对象CLOB并生成xml文件示例源代码

    jsp读取大对象CLOB并生成xml文件示例源代码

    clob 的读存问题

    需要注意的是,由于CLOB数据量庞大,读取时应考虑性能优化,如分块读取等策略;写入时则需确保数据的完整性和一致性。此外,对于大型项目,还应考虑数据的安全性,避免在CLOB字段中存储敏感信息。

    java读取oracle数据库中clob字段.txt

    java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    3. **CLOB 数据读取**:无论是 `oracle.sql.CLOB` 还是通过 `getVendorObj()` 方法得到的 `oracle.sql.CLOB` 对象,都可以通过 `getAsciiStream()` 和 `getSubString()` 方法来读取 CLOB 的内容,并将其转换为字符串...

    ORACLE中CLOB字段转String类型

    - 如果CLOB数据会被频繁读取并转换为字符串,则应考虑优化读取逻辑或使用缓存机制。 3. **索引和查询优化**: - 对于包含CLOB字段的表,适当的索引可以帮助提高查询效率。 - 在设计查询时考虑使用`OFFSET`和`...

    图片存入Oracle中,用clob和blob两种方式

    将图片转换为Base64字符串后,可以将其存储为`CLOB`,然后在读取时再解码回图片格式。 2. **BLOB数据类型**: `BLOB`数据类型则是用于存储二进制大对象,如图片、音频文件等。它可以直接存储原始的二进制数据,...

    java存储oracle中的clob类型

    - **getCharacterStream()**:返回一个`java.io.Reader`对象,按照Unicode编码读取CLOB数据。 - **getAsciiStream()**:返回一个`java.io.InputStream`对象,按照ASCII编码读取CLOB数据。 当数据库中可能包含中文等...

    hibernate存取oracle的clob

    读取 CLOB 数据通常涉及两个步骤:获取 CLOB 对象,然后从 CLOB 对象中读取数据。 **4.1 获取 CLOB 对象** 可以通过查询语句获取到包含 CLOB 数据的实体对象。 **4.2 从 CLOB 对象中读取数据** 获取到 CLOB 对象...

    clob增加、修改

    该类提供了一系列方法来读取和写入CLOB对象。 ### 二、Java操作CLOB字段的方法 #### 2.1 插入CLOB数据 插入CLOB数据通常涉及到以下步骤: 1. **创建空的CLOB对象**:使用`empty_clob()`函数创建一个空的CLOB对象。...

    oracle Blob转换Clob

    ### Oracle Blob转换Clob #### 知识点一:Oracle Blob与Clob的基本概念 - **Blob (Binary Large Object)**:在Oracle数据库中,Blob类型用于存储大量的二进制数据,如图像、视频或文档等非结构化数据。 - **Clob ...

Global site tag (gtag.js) - Google Analytics