LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间

 LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间 
 
把LOB字段的SEGMENT 存放在指定表空间、清理CLOB字段及压缩CLOB空间
1、创建LOB字段存放表空间:
create tablespace lob_test datafile '/oracle/data/lob_test.dbf' size 500m autoextend on next 10m maxsize unlimited
 
2、移动LOB字段到单独存放表空间:
ALTER TABLE CENTER_ADMIN.NWS_NEWS 
MOVE LOB(ABSTRACT) 
STORE AS (TABLESPACE lob_test);
ABSTRACT---为一CLOB类型的字段
lob_test---为新创建的表空间。
 
3、清空指定时间段CLOB字段的内容:
update  CENTER_ADMIN.NWS_NEWS 
set ABSTRACT=EMPTY_CLOB()     
where substr(to_char(pubdate,'yyyy-mm-dd'),1,4)='2011'
 
4、单独shrink CLOB字段:
 ALTER TABLE CENTER_ADMIN.NWS_NEWS  MODIFY LOB (ABSTRACT) (SHRINK SPACE);
--注:此方法会在表空间级释放出部分空间给其他对象使用,但这部分空间在操作系统级还是被占用
 
5、在操作系统级释放空间:
  alter database datafile '/oracle/data/lob_test.dbf' resize 400m
---注:绝大多数情况下,不可能一个表空间中只存放一个CLOB字段,若需要从操作系统级真正释放空间,尚需要shink table或EXP/IMP等操作。
posted @ 2016-02-05 10:53  jimeper  阅读(8800)  评论(0编辑  收藏  举报