Como o 10g, o Oracle não descarta tabelas imediatamente quando emitimos uma instrução DROP TABLE. Em vez disso, ele os renomeia assim
BIN$IN1vjtqhTEKcWfn9PshHYg==$0
e os coloca na lixeira. Isso nos permite recuperar tabelas que não pretendíamos descartar. Saiba mais
. As tabelas na lixeira ainda são tabelas, então elas aparecem em ALL_TABLES e visualizações semelhantes. Portanto, se você quiser ver apenas comentários relacionados apenas a tabelas ativas (não descartadas), precisará filtrar pelo nome da tabela:
select * from all_tab_comments
where substr(table_name,1,4) != 'BIN$'
/
Você está certo, seria incrível. Então, eu verifiquei a documentação e descobri que o Oracle 10g adicionou uma coluna chamada DROPPED às visualizações USER_/ALL_/DBA_TABLES.
select tc.*
from all_tab_comments tc
join all_tables t
on tc.owner = t.owner
and tc.table_name = t.table_name
where t.dropped = 'NO'
/
Confira a documentação . Obviamente, a necessidade de ingressar na visão ALL_TABLES requer mais digitação do que filtragem no nome, portanto, dependendo de nossa necessidade, pode ser mais fácil manter a cláusula WHERE original.