Oracle数据库中的大对象(LOB)数据类型介绍

时间:2022-06-11 04:13:22

 

一、LOB数据类型的介绍

        大对象(LOB)数据类型允许我们保存和操作非结构化和半结构化数据,如文档、图形图像、视频片段、声音文件和XML文件等。DMBS_LOB 包被设计用于操作 LOB 数据类型。从 Oracle 12c 开始,根据数据库块大小,LOB 最大可以存储 128TB 的数据,一个表可以有一个或多个 LOB 数据类型的列,如 二进制大对象(BLOB)、字符大对象(CLOB)、国家字符大对象(NCLOB)和BFILE。

        重要的是,每当在表中创建 LOB 列时,实际上会创建两个不同的段: LOBSEGMENT 和 LOBINDEX。LOBINDEX 指向存储在对应 LOBSEGMENT 中的 LOB “大块(chunks)”(注:chunk 是一个或多个 Oracle 块。默认的 chunk 大小等于表空间的块大小,最大值是 32KB)。在某些情况下,LOB 可能存储为“内联(inline)”,即存储在表段内,但内联存储通常用于相当小(小于 4000 字节)或为 NULL 的 LOB 数据。在这种情况下,LOB 值将直接存储在表段内。

 

二、CLOB 和 BLOB 的介绍

  1. 它们都是 Oracle 数据库的大对象(LOB)数据类型,Oracle 提供专门的包对其操作。
  2. BLOB、CLOB、NCLOB 这三种大对象(LOB),用来保存较大的图形文件或带格式的文本文件,如 Microsoft Word 文档,以及音频、视频等非文本文件,最大长度是 4GB。

        LOB 有几种类型,取决于您使用的字节的类型,Oracle 8i 实实在在地讲这些数据存储在数据库内部保存。可以执行读取、存储、写入等特殊操作。

 

        CLOB(Character Large Object):用于存储对应于数据库定义的字符集的字符数据。类似于long类型,常用与大文本的存储。

        BLOB(Binary Large Object):可用来存储无结构的二进制数据。类似于row 和 long row,常用与大图片的存储。