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

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

作者: 云芈山人 | 来源:发表于2022-03-03 18:02 被阅读0次

sys用户执行

  • 查找表空间的路径

sql> select * from dba_data_files;


查询结果1.png
  • 删除表空间(非空表空间,包含物理文件,如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上cascade constraints)

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;

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/zxcurrtx.html