Oracle数据库中的大对象(LOB)数据类型介绍
一、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、NCLOB和BFILE 之间的区别
BLOB(Binary Large Object):内部二进制大对象,可用来存储无结构的二进制数据。类似于row 和 long row,常用与大图片的存储。可存储的最大大小为 4G 字节。
CLOB(Character Large Object):内部字符大对象,用于存储对应于数据库定义的字符集的单字节字符的大型数据块,不支持宽度不等的字符集。类似于long类型,常用与大文本的存储。可存储的最大大小为 4G 字节。
NCLOB:国家语言字符集大对象,用于存储数据库中的固定宽度单字节或多字节字符的大型数据块,不支持宽度不等的字符集。可存储的最大大小为 4G 字节。
BFILE:外部二进制文件,当大型二进制对象的大小大于 4G 字节时,BFILE 数据类型用于将其存储在数据库外的操作系统文件中;当其大小不足 4G 字节时,则将其存储在数据库内部的操作系统文件中,BFILE 列存储文件定位程序,此定位程序指向服务器上的大型二进制文件。
- 它们都是 Oracle 数据库的大对象(LOB)数据类型,Oracle 提供专门的包对其操作。
- BLOB、CLOB、NCLOB 这三种大对象(LOB),用来保存较大的图形文件或带格式的文本文件,如 Microsoft Word 文档,以及音频、视频等非文本文件,最大长度是 4GB。
LOB 有几种类型,取决于您使用的字节的类型,Oracle 8i 实实在在地讲这些数据存储在数据库内部保存。可以执行读取、存储、写入等特殊操作。
三、参考网络上的其他分析(BLOB、CLOB和NCLOB之间的主要区别)
(1)指代不同
- BLOB:是指图像中的一块连通区域,BLOB分析就是对前景/背景分离后的二值图像。
- CLOB:是内置类型,将字符大对象(Character Large Object)存储为数据库表某一行中的一个列值。
- NCLOB:长度可变的字符大对象。
(2)特点不同
- BLOB:对运动目标在图像平面上的轨迹进行估计的问题。
- CLOB:CLOB对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。CLOB对象在被创建的事务处理期间有效。
- NCLOB:大小可变的CLOB对象,指向 SQL CLOB 数据的逻辑指针。

(3)数据保存方式不同
- BLOB:使用二进制保存数据。
- CLOB:使用 CHAR 来保存数据。
- NCLOB:使用 NCHAR 来保存数据。
Oracle数据库中的大对象(LOB)数据类型介绍的更多相关文章
- Oracle数据库中的重要对象
数据库中的重要对象:表.视图.序列.函数.存储过程.索引.同义词1.表:用PL/SQL Developer 软件打开 Scott的DEPT表查看SQL,可以看见DEPT表创建的脚本-- Create ...
- Mysql 数据库中9大对象
MySql 数据库9中对象1.表2.索引3.视图4.图表:数据库表之间的关系视图,并不常用5.规则6.缺省值:数据列的默认值7.触发器8.存储过程9.用户
- Oracle数据库中实现mysql数据库中auto-increment功能
在Mysql数据库中,想要实现一条数据的自增一功能(即插入此数据时填写null即可,系统自动+1),可直接在所在列使用语句auto-increment. id int primary key auto ...
- 详解大数据采集引擎之Sqoop&采集oracle数据库中的数据
一.Sqoop的简介: Sqoop是一个数据采集引擎/数据交换引擎,采集关系型数据库(RDBMS)中的数据,主要用于在RDBMS与HDFS/Hive/HBase之间进行数据传递,可以通过sqoop i ...
- Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值
1 Statement和PreparedStatement的特点 a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录 b)对于创建和 ...
- ORACLE数据库中执行计划出现INTERNAL_FUNCTION一定是隐式转换吗?
ORACLE数据库中,我们会使用一些SQL语句找出存在隐式转换的问题SQL,其中网上流传的一个SQL语句如下,查询V$SQL_PLAN的字段FILTER_PREDICATES中是否存在INTERNAL ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
- 查找Oracle数据库中的重复记录
本文介绍了几种快速查找ORACLE数据库中的重复记录的方法. 下面以表table_name为例,介绍三种不同的方法来确定库表中重复的记录 方法1:利用分组函数查找表中的重复行:按照某个字段分组,找出行 ...
- oracle 数据库中(创建、解锁、授权、删除)用户
上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...
随机推荐
- 使用Vagrant 后发现虚拟机磁盘空间爆满的血泪填坑记
现象: 用了几天vagrant后,发现docker 里的 Mysql5.7 服务无法启动,用docker ps 命令,发现mysql一直在反复重启, 查看mysql log 发现说磁盘空间不够, ...
- 【Oracle/Sql】清除重复而带出的性能问题
笔者使用的环境: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi ...
- Java清空一个指定文件
清空test.log文件所有内容 File log = new File("c:\\test\\test.log"); FileWriter fileWriter =new Fil ...
- boot 项目启动报Cannot datermine embedded database driver class for database type NONE
部署boot项目时报Cannot datermine embedded database driver class for database type NONE数据库链接什么的也都没有问题,经过百度 ...
- CTF资源
WINDOWS 逆向工程师技能表 https://www.sec-wiki.com/skill/6 Software-Security-Learning https://chybeta.github. ...
- python应用 曲线拟合 02
前情提要 CsI 闪烁体晶体+PD+前放输出信号满足: $U(t) = \frac{N_f\tau_p}{\tau_p-\tau_f} \left[ e^{-\frac{t}{\tau_p}}-e^{ ...
- go http请求流程分析
前言 golang作为常驻进程, 请求第三方服务或者资源(http, mysql, redis等)完毕后, 需要手动关闭连接, 否则连接会一直存在; 连接池是用来管理连接的, 请求之前从连接池里获取连 ...
- Android 重构方案
前言 最近面试了很多候选人,发现很多同学在简历上都写得非常厉害,负责架构设计,项目重构之类的.但是问起来,很多人都说不出个所以然来.今天我们不谈架构设计,我们聊一下重构.我面试时候经常会问,你是怎么重 ...
- 尤雨溪:TypeScript不会取代JavaScript
来源 |evrone.com译者 | 核子可乐策划 | 蔡芳芳 近日,Evrone 与 Vue.js 的作者尤雨溪进行了一次访谈,了解他对于无后端与全栈方法.以及 Vue.js 适用场景的看法,还有他 ...
- WinDbg排查CPU高的问题
一.概述 在Window服务器部署程序后,可能因为代码的不合理或者其他各种各样的问题,会导致CPU暴增,甚至达到100%等情况,严重危及到服务器的稳定以及系统稳定,但是一般来说对于已发布的程序,没法即 ...