oracle 修改索引现有表空间

工作日记之《修改索引现有表空间》


//dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途

//假设用户USER1现有表空间TS1、TS2,需要迁移其下所有表空间TS1的索引到TS2中,可使用以下语句(在pl sql中)。

SELECT 'ALTER INDEX '|| INDEX_NAME || ' REBUILD TABLESPACE T2;' FROM DBA_INDEXES WHERE TABLE_OWNER = 'USER1AND TABLESPACE = 'TS1';


//也可以直接写sql语句

ALTER INDEX YOUR_INDEX_NAME REBUILD TABLESPACE TS2;


//执行上面这句话,会查询出N多条记录,复制,新开SQL Window,粘贴,F8执行。执行完毕后,再次查询,发现USER1下,所有属于TS1的索引都改为TS2了。红色需要修改为自己的表空间和用户


注意:上面执行完毕后,可能会遇到不能alter 或 drop Lob类型索引的错误,这是因为你的表中BLOB或CLOB类型字段,它会自动给这类数据增加所以,并且无法直接修改。可以用以下语句解决。


//先创建一个临时表

CREATE TABLE T_TABLE1 AS SELECT* FROMTABLE1 ;

//删除有LOB字段的表
DROP TABLE TABLE1;

//重新创建刚刚的表
CREATE TABLETABLE1 AS SELECT* FROMT_TABLE1;

//删除临时表
DROP TABLET_TABLE1;


//颜色随便弄弄,你们知道就好了...

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页

打赏

leandzgc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者