Oracle 数据库修改索引表空间


Oracle 数据库修改索引表空间,包括修改表的表空间、修改索引的表空间、修改有CLOB字段的表空间等。
修改表空间语法

1、修改表的表空间
  1. alter table TABLENAME move tablespace TABLESPACENAME;  
2、修改索引的表空间
  1. alter index INDEXNAME rebuild tablespace TABLESPACENAME;  
3、修改有 CLOB 字段的表空间 

  1. alter table TABLENAME move tablespace TABLESPACENAME lob(COLUMNNAME) store as(tablespace TABLESPACENAME);  
修改表空间示例

修改表

  1. select 'alter table '||a.table_name||' move tablespace workflow;',   
  2. a.owner,a.table_name,a.tablespace_name,a.* from dba_tables a    
  3. where a.Owner='ERMIS_SHANXI'  
  4. order by a.owner,a.table_name;  
修改索引

  1. select 'alter index '||a.index_name||' rebuild tablespace workflow;',   
  2. a.owner,a.index_name,a.tablespace_name,a.* from dba_indexes a    
  3. where a.Owner='ERMIS_SHANXI'  
  4. order by a.owner,a.table_name;  
修改 clob 索引

  1. ALTER TABLE WF_H_PROCESSINSTATTR MOVE TABLESPACE WORKFLOW    
  2. LOB (ATTRIBUTE) STORE AS(TABLESPACE WORKFLOW);  
如果遇见大字段,增加一个属性:
  1. select 'alter index '||a.index_name||' rebuild tablespace VASD;',     
  2. a.owner,a.index_name,a.tablespace_name,a.* from dba_indexes a      
  3. where a.Owner='CMS200BJ2'     
  4. and index_type='NORMAL'  
  5. order by a.owner,a.table_name;     
  6.   
  7.   
  8.         select 'alter index '||a.index_name||' rebuild tablespace VASD;',     
  9. a.owner,a.index_name,a.tablespace_name,a.* from dba_indexes a      
  10. where a.Owner='CMS200BJ2'     
  11. and index_type='LOB'  
  12. order by a.owner,a.table_name;    
先查询所有涉及到大字段的表
  1. SELECT DISTINCT a.table_name   
  2.            FROM dba_indexes a   
  3.           WHERE a.owner = 'CMS200BJ2' AND index_type = 'LOB'  
一个一个拼吧

相关内容