今天有同事问到如何移动一个LOB索引到其他表空间。
LOB索引的特殊性使得REBUILD是不可行的。
要移动LOB索引到其他表空间,需要将相应的LOB对象移动到其他表空间。
SQL> CREATE TABLE TEST(ID INT,NAME VARCHAR2(20),CONTENTS CLOB);
表已创建。
SQL> ALTER INDEX "SYS_IL0000052966C00003$$" REBUILD;
ALTER INDEX "SYS_IL0000052966C00003$$" REBUILD
*
第 1 行出现错误:
ORA-02327: 无法以数据类型 LOB 的表达式创建索引
SQL> COL TABLESPACE_NAME FORMAT A20
SQL> COL INDEX_NAME FORMAT A30
SQL> SELECT INDEX_NAME,TABLESPACE_NAME FROM USER_INDEXES WHERE INDEX_TYPE='LOB';
INDEX_NAME TABLESPACE_NAME
------------------------------ --------------------
SYS_IL0000052966C00003$$ USERS
SQL> ALTER TABLE TEST MOVE LOB(CONTENTS) STORE AS (TABLESPACE SYSTEM);
表已更改。
SQL> SELECT INDEX_NAME,TABLESPACE_NAME FROM USER_INDEXES WHERE INDEX_TYPE='LOB';
INDEX_NAME TABLESPACE_NAME
------------------------------ --------------------
SYS_IL0000052966C00003$$ SYSTEM
阅读(8105) | 评论(0) | 转发(0) |