删除表空间:报ORA-00604 递归sql级别1出现错误和OR

2022-03-03  本文已影响0人  云芈山人

sys用户执行

sql> select * from dba_data_files;


查询结果1.png

sql> drop tablespace ZWHZYQ including contents including datafiles cascade constraints;

添加了cascade constraints选项,依然报错。报以下错误


报错.jpg
解决方式】:
  1. 查询主键约束

sql> select segment_name,partition_name,tablespace_name from dba_extents where tablespace_name=upper('ZWHZYQ');


查询结果2.png
  1. 生成删除主键约束的脚本

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 = 'ZWHZYQ');


查询结果3.png
  1. 执行生成的脚本

sql> alter table HZBSYS.A0193_TAG drop constraint PK_A0193_TAG ;
sql> .....

  1. 删除表空间

sql> drop tablespace ZWHZYQ including contents including datafiles;

执行上面步骤后发现删除部分表空间,仍然报错,排查后才发现,忘记删除用户。
删表空间之前必须先删除使用该表空间的用户。

sql> select * from dba_users;


查询结果4.png

sql> drop user 【用户名】 cascade;
sql> drop tablespace ZWHZYQ including contents including datafiles;

上一篇下一篇

猜你喜欢

热点阅读