温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

【恩墨学院】空与非空 EMPTY_LOB和NULL的区别

发布时间:2020-08-11 18:16:25 来源:ITPUB博客 阅读:151 作者:恩墨学院 栏目:关系型数据库

空与非空 EMPTY_LOB和NULL的区别

编辑手记:

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


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


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

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


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

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


   【恩墨学院】空与非空 EMPTY_LOB和NULL的区别


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

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


【恩墨学院】空与非空 EMPTY_LOB和NULL的区别


【恩墨学院】空与非空 EMPTY_LOB和NULL的区别


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


二者最大的区别在于:

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

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


【恩墨学院】空与非空 EMPTY_LOB和NULL的区别

【恩墨学院】空与非空 EMPTY_LOB和NULL的区别

恩墨学院隶属于云和恩墨(北京)信息技术有限公司,致力于提供专业高水准的oracle数据库与大数据培训服务,挖掘培养大数据与数据库人才。恩墨学院提供包括个人实战技能培训、个人认证培训、企业内训在内的全方位大数据和数据库技术培训。ACE级别超强师资,配备专业实验室,沉浸式学习与训练,专业实验室、配备专业助教指导训练。能迅速融入专家圈子,业内资源丰富,迅速积累职场人脉。oracle数据库课程包括:Oracle DBA实战班、Oracle OCM考试、Oracle OCP考试等。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI