经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
ORA-55622 不允许对表”XXX”执行DML,ALTER和CREATE UNIQUE INDEX 操作
来源:cnblogs  作者:jingkunliu  时间:2021/1/11 9:30:00  对本文有异议

错误描述:在进行用户以及表空间删除时候,报ORA-55622 不允许对表”XXX”执行DML,ALTER和CREATE UNIQUE INDEX 操作错误,具体错误信息如下:

drop user TJ_CZDJ_GX cascade;

QQ截图20210104095852

错误原因:经查看,“SYS_FBA_TCRV_XXX”命名的表为数据库闪回归档所使用的表,其主要负责记录在特定的时间范围,进行特定操作的信息记录。

闪回归档主要用于长时间保存某些表的变化数据,用于审计等,在删除表空间时,需要先关闭闪回归档。

可以通过下面语句查看所有用户下哪些表开启了闪回归档。

select * from dba_flashback_archive_tables;

另外也可以根据提示,通过下面语句查看具体报错的表:

select object_id,owner,object_name from dba_objects t where t.object_id=217444;

其中217444为报错信息中“SYS_FBA_TCRV_XXX”表提示XXX的内容。

image

解决方法:关闭相应表的闪回归档。

可以通过下面语句关闭指定表的闪回归档:

alter table XXX no flashback archive;

因为我这里有多个表开启了闪回归档,为了方便,直接构建多条关闭闪回归档语句,批量执行即可(注意构造好的alter语句是在当前用户下执行,如果要在sys下执行需要增加用户名前缀,即用户名.表名的格式)。

select 'alter table ' || table_name || ' no flashback archive ;'
   from dba_flashback_archive_tables;

image

再次执行drop user TJ_CZDJ_GX cascade;语句,已经不再提示ORA-55622错误。

另外,在执行过程中提示无法删除当前连接的用户:

image

我们直接到工具—>会话中,终止需要删除用户的会话即可。

image

原文链接:http://www.cnblogs.com/Jingkunliu/p/14228767.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号