Oracle中的大对象(long,long raw,clob,blob,nclob,bfile)

(1)Oralce7与Oralce8中大对象的对比

Oralce7:有两种基本的long类型大对象:long 字符 和 long raw 二进制.使用内部存储方式,最多可以存储2g的数据,只能按照顺序进行访问),每个表中只能存储一列,select返回实际的数据.
oracle8以后:有long,long raw,clob,blob,nclob,bfile类型.long,long raw类型同oracle 7,lob类型存储数据能够达到4g,即可以存储在表的内部也可以存储在表的外部,每个表能够存储多于一列的lob,不论存储在内部还是外部,select语句返回一个指向数据的指针.其中:long和long raw是oracle将要废弃的类型.

(2)lob
oracle8以后:oralce中有四种类型的lob:clob,blob,nclob,bfile.
clob:内部字符大对象;
blob:内部二进制大对象;
nclob:内部定长多字节大对象;
bfile:外部二进制大文件,这个文件中的数据只能被只读访问,并且不包含在数据库内。

bfile是早期的RDBMS BLOB的直接继承,作为数据库指针存储在数据库内部,指向外部的操作系统文件.
lob由两部分组成:数据和指向,数据的指针.lob列不包含值,只有定位指针.但是值与表是一起存储的.

(3)dbms_lob
在oracle中有多种方法可以对lob数据进行操作,但是最常用的为dbms_lob包,它主要提供了以下几个过程供用户对内部lob字段进行维护:
APPEND() 将源LOB中的内容加到目的LOB中
COPY() 从源LOB中复制数据到目的LOB
ERASE() 删除LOB中全部或部分内容
TRIM() 将LOB值减少到指定的长度
WRITE() 向LOB 中写入数据
COMPARE() 比较两个同种数据类型的LOB的部分或全部值是否相同
GETLENGTH() 获取LOB的长度
READ() 从LOB中读出数据

你可能感兴趣的:(Oracle,oracle,存储,数据库)