目的:将test表的表空间test迁移到cs表空间
1、先查看表的目前表空间
SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES WHERE TABLE_NAME='TEST';
TABLE_NAME TABLESPACE_NAME
---------- ----------
TEST TEST
2、查看表的索引表空间
SQL> select index_name,table_name,tablespace_name from user_indexes WHERE TABLE_NAME='TEST';
3、修改表的表空间
SQL> SELECT 'alter table '||TABLE_NAME||' move tablespace CS;' FROM USER_TABLES WHERE TABLE_NAME='TEST';
SQL> alter table TEST move tablespace CS;
4、修改表索引表空间
SQL> SELECT 'alter index '|| INDEX_NAME ||' rebuild tablespace CS;' FROM user_indexes WHERE TABLE_NAME='TEST';
SQL> alter index INDEX1 rebuild tablespace CS;
5、再次确认表、索引的表空间
SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES WHERE TABLE_NAME='TEST';
SQL> select index_name,table_name,tablespace_name from user_indexes WHERE TABLE_NAME='TEST';
6、需要注意TEST表里包含的CLOB字段,针对Clob、Blob字段需单独做修改处理
SQL> ALTER TABLE TEST MOVE TABLESPACE USERS LOB(col_lob1,col_lob2) STORE AS(TABLESPACE CS);