如果不再需要一個表空間及其內容(該表空間所包含的段,或所有的數據文件),就可以將該表空間中從數據庫中刪除。ORACLE數據庫中的任何
表空間,除系統必須的表空間(SYSTEM,SYSAUX,TEMP)外,都可以被刪除。
一旦一個表空間已經被刪除,該表空間的數據就不能恢復了。因而,一定要確保一個將被刪除的表空間所包含的所有數據將來都不再需要了。
另外,在從數據庫刪除表空間的前后,都需要對數據庫做一次完全備份。這樣即使錯誤的刪除了一個表空間,如果數據庫在刪除表空間后遇到
問題,還能夠恢復該數據庫。
不能刪除包含任何活動端的表空間。為了簡單,應該是表空間在被刪除之間脫機。
要刪除一個表空間,使用DROP TABLESPACE tablespace_name語句。用戶必須擁有DROP
TABLESPACE系統權限才能刪除一個表空間。
要刪除一個非空的表空間,就要使用INCLUDING CONTENTS選項,否則會有錯誤提示。
以上的語句只會從數據字典、控制文件刪除表空間信息,而與其相關的數據文件仍然存在于磁盤上。但是,當表空間一旦被刪除,無論它所包
括的數據文件是否被刪除,這些數據文件愛你都會時區作用。
從ORACLE 9I開始,在刪除表空間的同時還可以聯機的刪除與其相關的數據文件。當然,如果在ORACLE刪除表空間的同時,沒有只是它刪除數據
文件,就必須在以后使用合適的操作系統命令來刪除他們。
要刪除一個表空間的同時刪除與他相關的數據文件,就必須使用INCLUDING CONTENTS AND DATAFILES子句。
ALTER TABLESPACE mytbs06 OFFLINE;
DROP TABLESPACE mytbs06 INCLUDING CONTENTS AND DATAFILES;