oracle 删除表空间错误 提示:ora02429:无法删除用于强制唯一/

sql>drop tablespace zfxfzb;
ora-01549:表空间非空,请使用INCLUDING CONTENTS 选项
sql>drop tablespace zfxfzb INCLUDING CONTENTS and datafiles;
ora-00604:递归sql层1出现错误。
ora-02429:无法删除用于强制唯一/主键的索引。
sql>drop tablespace zfxfzb including contents cascade constraints;
ora-00604:递归sql层1出现错误。
ora-02429:无法删除用于强制唯一/主键的索引。
sql>select segment_name,partition_name,tablespace_name from   dba_extents    where tablespace_name=upper('zfxfzb');

显示出2个表的主键的表空间是:'zfxfzb'.
sql>select 'alter table '||owner||'.'||table_name||' drop constraint '||constraint_name||' ;'
from dba_constraints
where constraint_type in ('U', 'P')
   and (index_owner, index_name) in
       (select owner, segment_name
          from dba_segments
         where tablespace_name = upper('zfxfzb'));

显示结果如下:
alter table TEST.SYS_CODE drop constraint PK_CODEID ;
alter table TEST.KS_WPYP_PWPLGX drop constraint PK_KS_WPYP_PWPLGX ;
执行以上2条显示的结果
sql>alter table TEST.SYS_CODE drop constraint PK_CODEID ;
表已经更改
sql>alter table TEST.KS_WPYP_PWPLGX drop constraint PK_KS_WPYP_PWPLGX ;
表已经更改
sql>drop tablespace zfxfzb;


表空间已经丢弃。
记得修改上面2个被修改过的表。

原文地址:https://www.cnblogs.com/emanlee/p/2213650.html