关于Oracle数据库LOB大字段
cle 支持4 种类型的LOB:
2. LOB数据类型分类 (1) 按存储数据的类型分: 字符类型:
二进制类型:
二进制文件类型:
(2) 按存储方式分:
二、Lob的存储
我们建立含有lob字段的表时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中。 所示,每个lob字段都对应两个segment,其中存放lob数据的以SYS_LOB开头,存放索引以SYS_IL开头。 LOB 按“块”(chunk)或(piece)来存储,每个片段都可以访问。 三、Lob与其它类型的转换 通过TO_CLOB可以将CHAR,NCHAR,VARCHAR2,NVARCHAR2,NCLOB类型转换成CLOB; 通过TO_LOB可以将LONG RAW转换成BLOB,LONG转换成CLOB; 通过TO_NCLOB可以将CHAR,NCHAR,VARCHAR2,NVARCHAR2,CLOB转换成NCLOB。 四、Oracle数据库的SYS_LOB 看看你的表里是不是存在blog,clob等类型的字段,当我们所建立的表中含有lob型的数据时,oracle会为每个lob字段生成一个独立的segment用来存放数据,同时也建立了独立的index segment .oracle对它们是单独管理的。 普通表只会新增一个或两个段对象.类型为TABLE和INDEX,数据就存放在表段中.索引就放在索引段中。但是LOB列则额外新增了两个段对象,类型为LOBSEGMENT和LOBINDEX,LOBINDEX用于指向LOB段,找出其中的某一部分,所以存储在表中的LOB存储的是一个地址,或者说是一个指针,实际上表中的lob列中存的是一个地址段.然后在lobindex找到所有的地址段.然后在lobSegment中把所有地址段的值都读取了来。所以lobSegment就保存了LOG列的真正的数据,所以会非常大,并且独立于原始表存在。 先看看这个对应的表的字段是否有数据,如果有你就无法删除这个sys_lob$的对象。想减少空间的占用就清理历史数据,或者重新导出导入下。 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |