oracle中,可利用「alter table」語句轉移表的表空間,該語句可修改表的數據,與「move tablespace」配合使用就可移動表的表空間,語法為「alter table表名move tablespace 新的表空間」。
本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
轉移表的表空間語法如下:
將表table_name 移到新的new_tbsp表空間
alter table table_name move tablespace new_tbsp;
產生指定tbsp_name表空間下的【所有表】產生移動new_tbsp表空間SQL語句
select 'alter table '|| table_name|| ' move tablespace new_tbsp;' from user_tables where tablespace_name = 'tbsp_name'
#擴充功能:轉移不同的表空間
移動【索引】所在表格空間:
如將索引index_name 移到新的new_tbsp表空間(LOB資料類型的欄位需如下第3類處理)
alter index index_name rebuild tablespace new_tbsp;
--產生指定user_name使用者下的【所有索引】產生移動new_tbsp表空間SQL語句
select 'alter index '||index_name||' rebuild tablespace new_tbsp;' from user_indexes where table_owner = 'user_name'
移動【二進位流欄位】資料儲存表空間,如將表table_name中的二進位流欄位col_name移動到new_tbsp表空間
alter table table_name move tablespace new_tbsp lob (col_name) store as (tablespace new_tbsp);
--產生指定表table_name中為CLOB類型的欄位的移動到new_tbsp 表空間SQL語句
select 'alter table '|| table_name||' move tablespace new_tbsp lob ('|| column_name||' ) store as (tablespace new_tbsp);' from user_tab_columns where data_type='CLOB' and table_name='table_name'
#推薦教學:《Oracle影片教學》
以上是oracle怎麼轉移表的表空間的詳細內容。更多資訊請關注PHP中文網其他相關文章!