Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
当某个表空间中的数据不再需要时,或者新创建的表空间不符合要求时,可以考虑删除这个表空间。若要删除表空间,则需要用户具有 DROP TABLESPACE权限。
在默认情况下,
Oracle
系统不采用
Oracle Managed Files
方式管理文 件,这样删除表空间实际上仅是从数据字典和控制文件中将该表空间的有关信息清除掉,并没有真正删除该表空间包含的所有物理文件。
因 此,要想彻底删除表空间来释放磁盘空间,那么在执行删除表空间的命 令之后,还需要手动删除该表空间包含的所有物理文件。
当Oracle
系统采用
Oracle Managed Files
方式管理文件时,删除某个 表空间后,Oracle
系统将自动删除该表空间包含的所有物理文件。
删除表空间需要使用DROP TABLESPACE
命令,其语法格式如下:
DROP TABLESPACE tbS_nae[INCLUDING CONTENTS] [CASCADE CONSTRAINT]
[V]tbs_name:表示要删除的表空间名称。[V]INCLUDING CONTENTS:表示删除表空间的同时删除表空间中的数据。
如果不指定INCLUDING CONTENTS参数,而该表空间又存在数据时,则Oracle会提示错误。
[V] CASCADECONSTRAINTS:表示当删除当前表空间时也删除相关的完整性限制。
完整性限制包括主键及唯一索引等。如果完整性存在,而没有CASCADE CONSTRAINTS参数,则Oracle会提示错误,并且不会删除该表空间。
接下来通过一个例子来演示如何删除一个表空间,
删除表空间及其包含的所有内容
在上面的代码中,不但删除了表空间tbs_test 1,而且也删除了表空间中的数据(including contents)和完整性约束(cascade constraints)