我運行了oracle 11g
並需要將table (tbl1)
從tablespace (tblspc1)
移動到另一個(tblspc2)
。什麼是最簡單的方法來做到這一點?如何在oracle中將表從一個表空間移動到另一個表空間11g
回答
試試這個: -
ALTER TABLE <TABLE NAME to be moved> MOVE TABLESPACE <destination TABLESPACE NAME>
從IVAN很不錯的建議,在如此認爲我的回答
注意添加註釋:這將註銷所有表的索引。所以這個命令通常跟着
alter index <owner>."<index_name>" rebuild;
[來自文檔](http://docs.oracle.com/cd/E11882_01/server.112/e25494/tables006.htm#i1106606);和[更多此處](http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#i2081902) –
注意:這將使所有表索引無效。所以這個命令通常跟着「改變索引
@伊萬: - 謝恩伊萬。好的一點。在答案中加入了這個! +1 :) –
試試這個來移動你的表(tbl1)到表空間(tblspc2)。
alter table tb11 move tablespace tblspc2;
使用sql
從sql
:這
線軸輸出到文件:
select 'alter index '||owner||'.'||index_name||' rebuild tablespace TO_TABLESPACE_NAME;' from all_indexes where owner='OWNERNAME';
spoolfile信箱都會有這樣的事情:
alter index OWNER.PK_INDEX rebuild tablespace CORRECT_TS_NAME;
分開移動。您必須在index_name周圍使用「...」,否則您將獲得錯誤「ORA-01418:指定的索引不存在」。所以命令應該是:select'alter index'|| owner ||'。「'|| index_name ||'」重建表空間TO_TABLESPACE_NAME;' from all_indexes where owner ='OWNERNAME'; – Jan
移動表:
首先運行:
SELECT 'ALTER TABLE <schema_name>.' || OBJECT_NAME ||' MOVE TABLESPACE '||' <tablespace_name>; '
FROM ALL_OBJECTS
WHERE OWNER = '<schema_name>'
AND OBJECT_TYPE = 'TABLE'
<> '<TABLESPACE_NAME>';
哪裏<schema_name>
是用戶的名稱。 而<tablespace_name>
是目標表空間。
當你像線結果:
ALTER TABLE SCOT.PARTS MOVE TABLESPACE用戶;
將結果粘貼到腳本或應用程序的oracle sql開發者中並運行它。
移動指標:
首先運行:
SELECT 'ALTER INDEX <schema_name>.'||INDEX_NAME||' REBUILD TABLESPACE <tablespace_name>;'
FROM ALL_INDEXES
WHERE OWNER = '<schema_name>'
AND TABLESPACE_NAME NOT LIKE '<tablespace_name>';
在這個代碼可以爲您節省大量的時間,因爲它過濾掉它們已經在正確的表空間索引中的最後一行。
因此,你應該得到的東西,如:
ALTER INDEX REBUILD SCOT.PARTS_NO_PK TABLESPACE用戶;
將結果粘貼到腳本或應用程序的oracle sql開發者中並運行它。
最後但並非最不重要的,移動的LOB:
首先運行:
SELECT 'ALTER TABLE <schema_name>.'||LOWER(TABLE_NAME)||' MOVE LOB('||LOWER(COLUMN_NAME)||') STORE AS (TABLESPACE <table_space>);'
FROM DBA_TAB_COLS
WHERE OWNER = '<schema_name>' AND DATA_TYPE like '%LOB%';
這會將LOB類型的其他表空間。
因此,你應該得到的東西,如:
ALTER TABLE SCOT.bin $ 6t926o3phqjgqkjabaetqg == 0 $ MOVE LOB(日曆)STORE AS(TABLESPACE用戶);
將結果粘貼到腳本或應用程序的oracle sql開發者中並運行它。
O和還有一兩件事:
出於某種原因,我不能動「域」類型的索引。作爲一項工作,我放棄了索引。將用戶的默認表空間更改爲所需的表空間。然後再次重新創建索引。 有一種更好的方法,但它對我有效。
- 1. 如何將Oracle(C)LOB導入到另一個表空間
- 2. 如何將數據從一個表移動到另一個表#
- 3. 如何將Qt表單類移動到另一個名稱空間?
- 4. 如何在SQL中將某個列從一個表移動到另一個表?
- 5. 將列表展開到空間字符的另一個列表
- 6. 將一個表空間從一個postgresql實例複製到另一個
- 7. 如何在MySQL中將數據從一個表移動到另一個表中?
- 8. 如何將項目移動到另一個組織或空間
- 9. 如何將一行從一個表移動到另一個表中的mysql?
- 10. SQL將表中的值從一個表複製到另一個表,但將副本移動到另一個表
- 11. 如何將列表項目從一個列表移動到另一個列表?
- 12. 如何將記錄從一個表中移動到另一個表中
- 13. 如何在oracle 11g的特定表空間中查找用戶?
- 14. 將SQL數據從一個表移動到另一個表
- 15. 將數據從一個表移動到另一個表
- 16. MySQL將隨機行從一個表移動到另一個表
- 17. 將行從一個表移動到另一個表?
- 18. 將文本從一個表單移動到另一個表單
- 19. 將項目從一個列表移動到另一個列表
- 20. 將值從一個表格移動到另一個表格
- 21. 將項目從一個列表移動到另一個列表
- 22. 將數據從一個表格移動到另一個表格
- 23. 將數據從一個表移動到另一個表
- 24. 將數據從一個表移動到另一個表,postgresql版
- 25. 如何自動將行從一個表移動到另一個表?
- 26. 我不能更新一個表到另一個表在Oracle 11g中
- 27. 在Oracle表中將值從一列移動到另一列
- 28. 如何將Cassandra從一個密鑰空間遷移到另一個密鑰空間?
- 29. 將變換從一個座標空間映射到另一個座標空間
- 30. 在postgresql中創建一個表空間
你至少可以發佈你到目前爲止嘗試過的嗎? –