oracle中lob类型学习

oracle中支持4种类型的LOB(large object)

CLOB:字符LOB。这种类型用于存储大量的文本信息,如xml或者只是纯文本。这个数据类型需要进行字符集转换,也就是说,在获取时,这个字段中的字符会从数据库的字符集转换为客户的字符集,而在修改时会总客户的字符集转换为数据库的字符集。

NCLOB:这是另一种类型的LOB。存储在这一列中的数据所采用的字符集是数据库的国家字符集,而不是数据库的默认字符集。

BLOB:二进制LOB。这种类型用于存储大量的二进制信息,如处理文档、图像和你能想象的任何其他数据。它不会执行字符集转换。应用向BLOB写入什么位和字节,BLOB就会返回什么位和字节。

BFILE:二进制文件LOB。这与其说是一个数据库存储实体,不如说是一个指针。带BFILE列的数据库存储的只是操作系统的某个文件的一个指针。这个文件在数据库之外维护,根本不是数据库的一部分。BFILE提供了文件内容的只读访问。


因此可以将LOB分为内部LOB(CLOB、NCLOB、BLOB),外部LOB(BFILE内容存储在数据库之外,BFILE列只是一个指向操作系统中的文件的指针)

内部LOB字段在数据库内部并不是在表中记录数据(也可以设置为在表中记录(in row(最多4000字节,超过就会移出)))。LOB字段内部存储分为3个部分,如下图所示:


table T的Txt字段是CLOB类型的,LOB内部分为LOBINDEX、LOBSEGMENT,表T的Txt字段存储的为指向LOBINDEX的地址,LOBINDEX字段存储的为LOBSEGMENT的索引。所以查找的顺序是Txt->LOBINDEX->LOBSEGMENT。

如果是行内(IN ROW)存储,那就和varchar2没有区别了,行内存储要比行外存储块。这里只是浅显的了解了LOB字段的内部存储,深入的参数不记录了



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值