Oracle 删除表空间错误 提示:ora-02429:无法删除用于强制唯一/主键的索引

sql>droptablespace xxx

ora-01549:表空间非空,请使用INCLUDING CONTENTS 选项

 

sql>droptablespace xxx INCLUDING CONTENTS and datafiles;

ora-00604:递归sql层1出现错误。

ora-02429:无法删除用于强制唯一/主键的索引。

 

sql>droptablespace xxx including contents cascade constraints

ora-00604:递归sql层1出现错误。

ora-02429:无法删除用于强制唯一/主键的索引。

 

sql>selectsegment_name,partition_name,tablespace_name from   dba_extents    where tablespace_name=upper('XXX')

 

显示出2个表的主键的表空间是:XXX.

 

sql>select'alter table '||owner||'.'||table_name||' drop constraint '||constraint_name||';'

fromdba_constraints

whereconstraint_type in ('U', 'P')

   and (index_owner, index_name) in

       (select owner, segment_name

          from dba_segments

         where tablespace_name = 'XXX');

 

执行显示的结果,显示表更改。

然后

sql>droptablespace XXX

表空间已经丢弃。

 

以上方法转自http://blog.csdn.net/fuqinyijiu/article/details/40537719

当查询出的结构只有一两条的时候适用,但是我在删除表空间的时候遇到,查出的语句有37条。。。而且有的语句执行后也报错:

ora-02429:无法删除用于强制唯一/主键的索引。

没办法更改。

 

解决办法是,直接删除表空间的用户。。。

sql>dropuser XX cascade

然后再删除表空间

sql>droptablespace XXX including contents and datafiles

表空间已经丢弃。

 

方法有点简单粗暴,但是能用就行。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值