• CLOB、BLOB , CLOB与BLOB的区别


    CLOB 定义

      数据库中的一种保存文件所使用的类型。

      Character Large Object

      SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在它被创建的事务处理期间有效。

      在一些数据库系统里,也使用Text 作为CLOB的别名,比如SQL Server

    BLOB的含义

      BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。

      在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。

      BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。

      根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。

    但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。

    CLOB和BLOB的区别

      CLOB使用CHAR来保存数据。 如:保存XML文档。

           BLOB就是使用二进制保存数据。 如:保存位图。

    JAVA里面对CLOB的操作

      在绝大多数情况下,使用2种方法使用CLOB

      1 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可

      2 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可

      读取数据

      ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");

      rs.next();

      Reader reader = rs.getCharacterStream(2);

      插入数据

      PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");

      pstmt.setInt(1, 1);

      pstmt.setString(2, htmlStr);

      pstmt.executeUpdate();

      更新数据

      Statement stmt = con.createStatemet();

      ResultSet rs = stmt.executeQuery("SELECT * FROM test1");

      rs.next();

      Clob clob = rs.getClob(2);

      long pos = clob.position("dog", 1);

      clob.setString(1, "cat", len, 3);

      rs.updateClob(2, clob);

      rs.updateRow();

     

     

    BLOBCLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。其实两个是可以互换的的,或者可以直接用LOB字段代替这两个。但是为了更好的管理ORACLE数据库,通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。

    oracle中Blob和Clob类型的区别

    1.BLOB   
     BLOB全称为二进制大型对象(Binary   Large   Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节   
    2.CLOB   
     CLOB全称为字符大型对象(Character   Large   Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节

         通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。

    JAVA里面对CLOB的操作

      在绝大多数情况下,使用2种方法使用CLOB

      1 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可

      2 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可

      读取数据

    1 ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");
    2 rs.next();
    3 Reader reader = rs.getCharacterStream(2);

      插入数据 

    1 PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");
    2 pstmt.setInt(1, 1);
    3 pstmt.setString(2, htmlStr);
    4 pstmt.executeUpdate();

      更新数据

    复制代码
    1 Statement stmt = con.createStatemet();
    2 ResultSet rs = stmt.executeQuery("SELECT * FROM test1");
    3 rs.next();
    4 Clob clob = rs.getClob(2);
    5 long pos = clob.position("dog", 1);
    6 clob.setString(1, "cat", len, 3);
    7 rs.updateClob(2, clob);
    8 rs.updateRow();
  • 相关阅读:
    最高效的无限级菜单生成方法
    MySQL性能优化的最佳20+条经验(转)
    Web应用中的轻量级消息队列
    Delphi Setlength 内存释放总结
    Delphi 的TSpeedButton按下和弹起效果
    Delphi存取图像完整解决方案
    delphi 开机自动运行代码
    有关时间限制使用和软件注册的设计(delphi)
    Linux环境thinkphp配置以及数据源驱动改动
    Dalvik和ART简单介绍
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/10968081.html
Copyright © 2020-2023  润新知