重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2558|回复: 1
打印 上一主题 下一主题

[Oracle] 重建LOB字段上的Index

[复制链接]
跳转到指定楼层
楼主
发表于 2021-12-16 21:24:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用alter index XXX rebuild;语句来重建大对象的索引时,会出现报错:
ERROR at line 1:
ORA-02327: cannot create index on expression with datatype LOB
可见建在LOB类型字段上的Index不能通过这种方式重建。
在含有Lob字段的表都会自动创建类似SYS_IL。。。的索引,而这些索引都是Oracle自己来维护,并且跟表放在同一个表空间,通常不需要自己去维护它们。

需要进行大对象索引的重建时,一般使用
ALTER TABLE test MOVE
  TABLESPACE users
  LOB (TXT) STORE AS lobsegment
  (TABLESPACE users  );

如果包含lob的表同时需要更改表属性和lob属性,请使用以下语法:
ALTER TABLE test MOVE  TABLESPACE new_tb STORAGE(new_storage)  LOB (TXT) STORE AS lobsegment  (TABLESPACE new_tb STORAGE (new_storage));
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2021-12-17 12:35:22 | 只看该作者
大对象重建索引非常慢,同时,重建索引后,注意对象约束的索引是否失效。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-26 04:26 , Processed in 0.079369 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表