Aangezien 10g Oracle tabellen niet onmiddellijk laat vallen wanneer we een DROP TABLE-instructie uitgeven. In plaats daarvan hernoemt het ze als volgt BIN$IN1vjtqhTEKcWfn9PshHYg==$0
en stopt ze in de prullenbak. Dit stelt ons in staat om tabellen te herstellen die we niet wilden laten vallen. Meer informatie
.
Tabellen in de prullenbak zijn nog steeds tabellen, dus ze verschijnen in ALL_TABLES en vergelijkbare weergaven. Dus als u alleen opmerkingen wilt zien die alleen betrekking hebben op live (niet-gedropte) tafels, moet u filteren op tafelnaam:
select * from all_tab_comments
where substr(table_name,1,4) != 'BIN$'
/
Je hebt gelijk, het zou ongelooflijk zijn. Dus ik controleerde de documentatie en het bleek dat Oracle 10g een kolom met de naam DROPPED heeft toegevoegd aan de USER_/ALL_/DBA_TABLES-weergaven.
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'
/
Bekijk de documentatie . Het is duidelijk dat de noodzaak om deel te nemen aan de ALL_TABLES-weergave meer typen vereist dan filteren op de naam, dus afhankelijk van onze behoefte kan het misschien eenvoudiger zijn om de originele WHERE-clausule te behouden.