錯誤描述:在進行用戶以及表空間洗掉時候,報ORA-55622 不允許對表”XXX”執行DML,ALTER和CREATE UNIQUE INDEX 操作錯誤,具體錯誤資訊如下:
drop user TJ_CZDJ_GX cascade;

錯誤原因:經查看,“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的內容,

解決方法:關閉相應表的閃回歸檔,
可以通過下面陳述句關閉指定表的閃回歸檔:
alter table XXX no flashback archive;
因為我這里有多個表開啟了閃回歸檔,為了方便,直接構建多條關閉閃回歸檔陳述句,批量執行即可(注意構造好的alter陳述句是在當前用戶下執行,如果要在sys下執行需要增加用戶名前綴,即用戶名.表名的格式),
select 'alter table ' || table_name || ' no flashback archive ;'
from dba_flashback_archive_tables;

再次執行drop user TJ_CZDJ_GX cascade;陳述句,已經不再提示ORA-55622錯誤,
另外,在執行程序中提示無法洗掉當前連接的用戶:

我們直接到工具—>會話中,終止需要洗掉用戶的會話即可,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/244664.html
標籤:其他
下一篇:資料庫事務以及事務的四個特性
