ORA-55622 不容許對錶」XXX」執行DML,ALTER和CREATE UNIQUE INDEX 操做

錯誤描述:在進行用戶以及表空間刪除時候,報ORA-55622 不容許對錶」XXX」執行DML,ALTER和CREATE UNIQUE INDEX 操做錯誤,具體錯誤信息以下:數據庫

drop user TJ_CZDJ_GX cascade;工具

QQ截圖20210104095852

錯誤緣由:經查看,「SYS_FBA_TCRV_XXX」命名的表爲數據庫閃迴歸檔所使用的表,其主要負責記錄在特定的時間範圍,進行特定操做的信息記錄。3d

閃迴歸檔主要用於長時間保存某些表的變化數據,用於審計等,在刪除表空間時,須要先關閉閃迴歸檔。blog

能夠經過下面語句查看全部用戶下哪些表開啓了閃迴歸檔。get

select * from dba_flashback_archive_tables;flash

另外也能夠根據提示,經過下面語句查看具體報錯的表:it

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

其中217444爲報錯信息中「SYS_FBA_TCRV_XXX」表提示XXX的內容。object

image

解決方法:關閉相應表的閃迴歸檔。select

能夠經過下面語句關閉指定表的閃迴歸檔:

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

相關文章
相關標籤/搜索