oracle 整个表空间迁移,ORACLE表批量迁移表空间
第一步:將表遷移到目標表空間
1)使用如下語句,可以將需要移動的表空間語句在pl/sql中列出來,
select 'alter table ' ||table_name || ' move tablespace 目標表空間名稱;' from user_all_tables where tablespace_name='源表空間名稱'
例如:
登錄數據庫用戶TEST。將TEST所有表從SYSTEM表空間遷移到USERS表空間。
select 'alter table ' ||table_name || ' move tablespace users;' from user_all_tables where tablespace_name='SYSTEM';
將PL/SQL中列出來的語句執行一次,就完成表的遷移。
2)將上面語句的結果拷貝到sql文件1.sql中
第二步:重新生成索引:
1)使用如下語句,生成重新編譯索引語句:
SELECT 'alter index ' || index_name || ' rebuild tablespace users;'
FROM user_indexes
WHERE index_type = 'NORMAL'
AND table_owner = 'SDHY_DEV'
AND dropped = 'NO';
注意:
index_type包括兩種類型'NORMAL'為普通表,'LOB'為blob或者clob字段生成的索引,在這里要排除掉
DROPPED包括YES和NO兩種類型,為YES時是廢棄的索引
2)將上面語句的結果拷貝到sql文件2.sql中
第三步:批量執行操作:
將第一步與第二步列出的語句放在SQL執行窗口中執行,就可以實現表數據及索引遷移。
總結
以上是生活随笔為你收集整理的oracle 整个表空间迁移,ORACLE表批量迁移表空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php超链接如何隐藏参数,php如何去除
- 下一篇: oracle如何查询系统变量数据,Ora