Oracle
 sql >> Database >  >> RDS >> Oracle

Come ottenere commenti sulla tabella tramite SQL in Oracle?

Poiché Oracle 10g non elimina immediatamente le tabelle quando emettiamo un'istruzione DROP TABLE. Invece li rinomina in questo modo BIN$IN1vjtqhTEKcWfn9PshHYg==$0 e li mette nel cestino. Questo ci consente di recuperare tabelle che non intendevamo eliminare. Scopri di più .

Le tabelle nel cestino sono ancora tabelle, quindi vengono visualizzate in ALL_TABLES e viste simili. Quindi, se vuoi vedere solo i commenti relativi solo alle tabelle live (non eliminate), devi filtrare per nome della tabella:

select * from all_tab_comments
where substr(table_name,1,4) != 'BIN$'
/

Hai ragione, sarebbe incredibile. Quindi ho controllato la documentazione, risulta che Oracle 10g ha aggiunto una colonna chiamata DROPPED alle viste 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'
/

Consulta la documentazione . Ovviamente la necessità di entrare nella vista ALL_TABLES richiede più digitazione che filtraggio sul nome, quindi a seconda delle nostre necessità potrebbe essere più semplice mantenere la clausola WHERE originale.