我是Oracle DBMS的新手,我的任务是更改索引表空间,例如从MYDB_DATA_SPACE
更改为MYDB_INDX_SPACE
。
我已经在Google上搜索了可能的解决方案,并找到了以下SQL代码:
ALTER INDEX idx_city_state
REBUILD TABLESPACE sales_us;
我可以确认这是否符合要求吗?
我是Oracle DBMS的新手,我的任务是更改索引表空间,例如从MYDB_DATA_SPACE
更改为MYDB_INDX_SPACE
。
我已经在Google上搜索了可能的解决方案,并找到了以下SQL代码:
ALTER INDEX idx_city_state
REBUILD TABLESPACE sales_us;
我可以确认这是否符合要求吗?
是的,那将重建在sales_us
表空间中的idx_city_state
索引。 您可以编写一些动态SQL来重建所有索引。
DECLARE
l_sql_stmt VARCHAR2(1000);
BEGIN
FOR i IN (SELECT owner,
index_name
FROM all_indexes
WHERE tablespace_name = 'MYDB_DATA_SPACE')
LOOP
l_sql_stmt := 'ALTER INDEX ' || i.owner || '.' || i.index_name ||
' REBUILD TABLESPACE MYDB_INDX_SPACE';
EXECUTE IMMEDIATE l_sql_stmt;
END LOOP;
END;