文档介绍:如何彻底删除表空间 ora-02429: 无法删除用于强制唯一/ 主键的索引 sql>drop tablespace ksdm 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('KSDM') 显示出 2 个表的主键的表空间是: KSDM -- 以下是生成删除主键约束的脚本 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 = 'KSDM'); 显示结果如下: alter table drop constraint PK_CODEID ; alter table drop constraint PK_KS_WPYP_PWPLGX ; 执行以上 2 条显示的结果 sql>alter table drop constraint PK_CODEID ; 表已经更改 sql>alter table drop constraint PK_KS_WPYP_PWPLGX ; 表已经更改 sql>drop tablespace KSDM 表空间已经丢弃。 DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES; 在该用户下写一个存储过程(要保证该用户并不是以 dba 身份登录的,不然会把系统表都删掉哦) create or replace procedure pro_droptable is cursor cur is select table_name from user_tables; drop_sql varchar2(1000); begin for tbname in cur loop begin drop_sql:='drop table '||; execute immediate drop_sql; end; end loop; end pro_droptable; 然后执行就 OK 啦执行语句: call pro_droptable() 删除 ORACLE 下的用户 conn /as sysdba delete from user$ where name='dzysc'; commit; alter system flush s