Столкнулся с ошибкой
Message : SQL dictionary health check: file$ pk 42 on object FILE$ failed
Message : Damaged rowid is AAAAARAABAAAADpAAL - description: No further damage description available
SQL код:
select file#,status$,ts# from file$ where rowid='AAAAARAABAAAADpAAL';
FILE# STATUS TS#
===== ======= ====
29 1
эта rowid соответствует file#=29
SQL код:
select * from v$datafile where file#=29;
no rows selected
file#=29 являлся частью дропнутого табличного пространства.
После удаления табличного пространства, Oracle хранит информацию о нем и его файлах в ts$, online$=3 и в file$ , status$=1.
SQL код:
select ts#,name,online$ from ts$;
Должно вернуть табличное пространство с online$=3
А в целом - это баг, поправленный в 12.2
Цитата: Bug 19543595 Incorrect healthcheck errors from DBMS_HM - false errors on TS$ , FILE$ or USER$
Теоретически можно попробовать
SQL код:
delete from file$ where status$=1;
но это опасная и нерекомендуемая штука...