`
CherryRemind
  • 浏览: 54688 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Clob存中文

阅读更多
数据文件直接使用中文
package core;

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

/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class ClobEx {
  public static void addLob(int id, String binFile) throws SQLException {
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

    try {
      con = ConnectionFactory.getFactory().getConnection();
      con.setAutoCommit(false);

      String sql = "INSERT INTO tbl_clob(id, remark) " +
          "VALUES(?, ?)";
      ps = con.prepareStatement(sql);      
      ps.setInt(1, id);
      ps.setClob(2, oracle.sql.CLOB.empty_lob());

      ps.executeUpdate();
      DBUtils.close(ps);
      ps = con.prepareStatement(
       "SELECT remark FROM tbl_clob" +
          " WHERE id = "  + id);
      
      rs = ps.executeQuery();    
      if (rs.next()) {      
        oracle.sql.CLOB remark =
         (oracle.sql.CLOB)rs.getClob(1);
        
        PrintWriter out = new PrintWriter(new OutputStreamWriter(remark.getAsciiOutputStream()));
        BufferedReader in = new BufferedReader(
           new FileReader(binFile));
        String s;
        while ((s = in.readLine()) != null) {
          out.println(s);              
        }        
        in.close();
        out.close();
      }
      con.commit();
    } catch (Exception e) {
      e.printStackTrace();
      try {
        con.rollback();
      } catch (SQLException se) {
      }
      throw new SQLException(e.getMessage());
    } finally {
      DBUtils.close(rs, ps, con);
    }
  }

  public static void fetchLob(int id, String filename) throws SQLException {
    Connection con = null;
    Statement st = null;
    ResultSet rs = null;

    try {
      con = ConnectionFactory.getFactory().getConnection();

      String sql = "SELECT * from tbl_clob where id = " + id;
      st = con.createStatement();

      rs = st.executeQuery(sql);
      if (rs.next()) {
        oracle.sql.CLOB remark =
          (oracle.sql.CLOB)rs.getClob("remark");

        PrintWriter out = new PrintWriter(
          new FileWriter(filename));            
        BufferedReader in = new BufferedReader(
         new InputStreamReader(
         remark.getAsciiStream(), "GB2312"));
        String s;
        while ((s = in.readLine()) != null) {
          out.println(s);          
        }
        in.close();
        out.close();
      }
    } catch (Exception e) {
      throw new SQLException(e.getMessage());
    } finally {
      DBUtils.close(rs, st, con);
    }
  }

  public static void main(String[] args) throws Exception {
    addLob(5, "test_u.txt");
    fetchLob(5, "test_c.txt");
    System.out.println("completed!");
  }
}

分享到:
评论

相关推荐

    clob 的读存问题

    在IT领域,尤其是在数据库操作与数据管理中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,常用于保存如文章、报告、注释等大文本信息。本文将详细解析CLOB的读写问题,包括其在Oracle...

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

    在数据库管理中,存储非结构化数据如图片、音频或视频文件时,通常会使用`CLOB`(Character Large Object)和`BLOB`(Binary Large Object)这两种数据类型。Oracle数据库系统支持这两种数据类型,用于存储大量文本...

    图片存数据库 clob类型

    ### 图片存储数据库——CLOB类型 #### 一、引言 在开发Web应用程序时,经常需要处理多媒体数据,如图像、音频或视频文件。这些文件通常体积较大且格式多样,如何有效地存储与检索这类非结构化数据成为了一个重要的...

    CLOB、BLOB___CLOB与BLOB的区别

    CLOB、BLOB 与 CLOB 与 BLOB 的区别 CLOB(Character Large OBject)是一种数据库类型,用于存储大型字符对象。它是 SQL 类型,用于存储字符大对象(Character Large Object),将字符大对象存储为数据库表某一行中...

    ORACLE 存储过程返回结果集,拼接为字符串输出为clob

    大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...

    clob的保存和修改

    例如,在Oracle中,你可以创建一个包含CLOB列的表,然后使用`TO_CLOB`函数将字符串转换为CLOB类型进行插入。 ```sql CREATE TABLE my_table (id NUMBER, content CLOB); INSERT INTO my_table (id, content) ...

    ora存、查clob类型帮助文档.txt

    C#。ora存、查clob类型帮助文档。DLL类库下载看我Oracle.ManagerDataAccess.Dll类库。

    mybatis 对clob类型转换

    在数据库中,CLOB(Character Large Object)类型用于存储大文本数据,如长篇文章或XML文档。在使用MyBatis框架进行数据操作时,我们可能会遇到CLOB类型数据的读写问题,尤其是在转换和插入数据库时。本篇将详细探讨...

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

    ### WebLogic 下 Oracle CLOB 类型转换解决方案 在使用 WebLogic 服务器进行应用程序开发时,尤其是在处理 Oracle 数据库中的 CLOB 类型数据时,开发者可能会遇到类型转换的问题。本文将详细介绍如何通过反射机制来...

    数据库读取clob字段

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

    jdbc 处理clob类型字段

    当我们在处理大型文本数据时,例如XML文档、长篇文章或者大段代码,数据库通常会提供CLOB(Character Large Object)类型来存储这类数据。本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括...

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

    在数据库编程领域,CLOB(Character Large Object)和BLOB(Binary Large Object)是用于存储大量文本和二进制数据的数据类型。在DELPHI中,处理这些大型对象时需要特殊的技术和策略。本篇文章将深入探讨DELPHI中...

    dblink_clob字段异常解决方案

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

    java存储oracle中的clob类型

    本文主要介绍了在Java中处理Oracle数据库CLOB类型的基本方法,包括CLOB的读写操作、中文编码问题的处理以及一些额外的注意事项。通过这些知识点的学习,可以更高效地完成与Oracle数据库的交互任务。

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

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

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    向Oracle数据库插入Clob大段文本解决方法

    在处理Oracle数据库中的大文本数据时,CLOB(Character Large Object)类型被广泛应用于存储大量字符数据,如文章、报告或任何大型文本信息。本文将详细介绍如何有效地向Oracle数据库插入Clob大段文本,以及在操作...

    修改clob blob 字段

    修改clob blob 字段 修改clob blob 字段 修改clob blob 字段

    clob增加、修改

    根据给定文件的信息,本文将深入探讨如何在Java中操作Oracle数据库中的CLOB字段,包括添加和修改等操作。CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在处理如文章、评论等长文本时非常...

    数据库中clob类型转换的问题 数据库中clob类型转换的问题

    在探讨“数据库中CLOB类型转换的问题”这一主题时,我们首先需要理解CLOB(Character Large Object)数据类型的基本概念及其在数据库中的应用场景。随后,将深入分析CLOB类型转换过程中可能遇到的问题,并提供相应的...

Global site tag (gtag.js) - Google Analytics