空与非空 EMPTY_LOB和NULL的区别

编辑手记:

EMPTY_LOB与NULL在字面意思上看起来差不多,但实际上,它们却有天壤之别。

前不久写过一篇文章,描述如果表包含了触发器,在通过IMP导入数据的时候,原本的EMPTY_LOB将被转化为NULL。有朋友在文章的回复中问,EMPTY_LOB和NULL的区别,这里就简单描述一下。

包含触发器的LOB表执行IMP导致EMPTY_LOB变为空:

http://yangtingkun.itpub.net/post/468/495024

说实话,二者其实差别还是相当大的。

一个表示的未知,另一个表示的空的大对象。需要注意空的大对象并不是空的概念:

使用IS NULL作为条件进行判断,EMPTY_LOB是查询不到的。

利用DBMS_LOB.GETLENGTH也可以看出二者的区别:

虽然EMPTY_LOB没有包含LOB内容,但是LOB头信息已经存在,因此需要占用不小的空间。

二者最大的区别在于:

EMPTY_LOB虽然没有LOB的内容,但是已经做好了插入LOB内容的准备,用户获取到LOB的头信息后就可以直接插入数据了。

而对于NULL来说,显然是不能直接修改的。

热文回顾

Standby Redo Logs 在线重定义 表分区

论DBA的自我修养 MySQL MGR与Galera性能测试

MySQL连接错误 Docker技术

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2017-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

python3--进程

进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的

512
来自专栏java一日一条

Java I/O底层是如何工作的?

本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的...

644
来自专栏我是攻城师

玩转大数据系列之Apache Pig高级技能之函数编程(六)

3233
来自专栏Android开发实战

I/O在底层的工作概述

本文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的I...

763
来自专栏Albert陈凯

MapReduce设计模式

一:概要模式 1:简介 概要设计模式更接近简单的MR应用,因为基于键将数据分组是MR范型的核心功能,所有的键将被分组汇入reducer中 本章涉及的概要模...

2695
来自专栏公有云大数据平台弹性MapReduce

MR调优实战

参数1-6是针对yarn的设置。参数1是告诉集群本节点有多少内存资源。2和3设置单个container能够申请到的最小最大内存。4是是否物理开启内存监控,监控c...

1231
来自专栏码农阿宇

在.Net Core中使用MongoDB的入门教程(二)

在上一篇文章中,讲到了MongoDB在导入驱动、MongoDB的连接,数据的插入等。 在.Net Core中使用MongoDB的入门教程(一) 本篇文章将接...

2799
来自专栏决胜机器学习

RabbitMQ(五) ——话题模式

RabbitMQ(五)——话题模式 (原创内容,转载请注明来源,谢谢) 一、概述 话题模式(topic)可以让队列绑定某一类型的消息,而不仅仅是direct模式...

3125
来自专栏前端小叙

javascript实现一行文字随不同设备自适应改变字体大小至完全展示

产品提了一个小需求,希望一行能展示用户输入的所有文字,因为最多限制为25字符,但是如果夹杂英文/韩文/日文等,即使字符数是一样的,但是展示的长度不一样,则有些t...

481
来自专栏IT可乐

深入理解计算机系统(3.2)------程序编码以及数据格式

  在进行本章的讲解之前,我们先说明讲解的机器语言型号。上一篇汇编语言和机器语言我们讲过,机器语言是直接面向处理器(Processor:CPU)的程序设计语言,...

19010

扫码关注云+社区