您的位置:首页 > 其它

关于修改表空间 从网上摘录高手的 部分东西

2010-04-17 07:32 218 查看
为什么该表用USERS表空间会出现ORA-01693问题,改为TEST表空间后正常,USERS和TEST的maxextents都为无限制。

  突然想到该用户下面的所有表同样都在USERS表空间中,决定把所有表都移至TEST中由于表较多所以用一个查询生成所需要的命令

  Select ‘alter table ‘ || table_name || ‘ move tablespace test; ‘ from user_tables;

  然后执行该查询所生成的结果

  将该用户下的索引移至表空间TEST

  Select ‘alter index ‘|| index_name || ‘ rebuild tablespace test;’

  执行该查询生成的命令后,发现有4个表报错

  ORA-02327: cannot create index on expression with datatype LOB

  检查4个表的结构后,都有个LOB字段那说明有LOB字段的索引不能用正常的

  alter index index_name rebuild talespace tablespace_name

  网上查询得知我们要移动LOB的索引就必须使用特定的语法来移动LOB的对象,具体的语法如下:

  ALTER TABLE table_name MOVE

  TABLESPACE new_tbsp

  STORAGE(new_storage)

  LOB (lobcol) --后面括号里面内容为 LOB 字段名

  STORE AS lobsegment

  (TABLESPACE new_tbsp

  STORAGE (new_storage));

  检查是否有索引状态为'UNUSABLE'select index_name from user_indexes t where t.status ='UNUSABLE';如果有则对该索引重建alter index index_name rebuild

  使用以上语法在修改这4条索引时,正常!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐