原文地址


前不久写过一篇文章,描述如果表包含了触发器,在通过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的区别



原文地址

空与非空 EMPTY_LOB和NULL的区别

相关文章:

  • 2021-12-10
  • 2022-01-24
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2021-11-23
  • 2021-10-08
  • 2022-12-23
猜你喜欢
  • 2022-03-08
  • 2022-01-16
  • 2022-02-04
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案