Da 10g Oracle ikke umiddelbart dropper tabeller, når vi udsteder en DROP TABLE-erklæring. I stedet omdøber den dem på denne måde BIN$IN1vjtqhTEKcWfn9PshHYg==$0
og lægger dem i papirkurven. Dette giver os mulighed for at gendanne tabeller, vi ikke havde til hensigt at droppe. Få mere at vide
.
Tabeller i papirkurven er stadig tabeller, så de vises i ALL_TABLES og lignende visninger. Så hvis du kun ønsker at se kommentarer, der kun vedrører live (ikke-faldne) tabeller, skal du filtrere efter tabelnavn:
select * from all_tab_comments
where substr(table_name,1,4) != 'BIN$'
/
Du har ret, det ville være utroligt. Så jeg tjekkede dokumentationen, og det viste sig, at Oracle 10g tilføjede en kolonne kaldet DROPPED til USER_/ALL_/DBA_TABLES-visningerne.
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'
/
Se dokumentationen . Det er klart, at behovet for at deltage i ALL_TABLES-visningen kræver mere indtastning end filtrering på navnet, så afhængigt af vores behov kan det være nemmere at beholde den originale WHERE-sætning.