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

Hvordan får man tabelkommentarer via SQL i Oracle?

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.



  1. Hvordan laver man fuld ydre joinforbindelse for at kombinere to tabeller i mysql?

  2. Betyder rækkefølgen af ​​tabeller i en joinforbindelse, når LEFT (ydre) joins bruges?

  3. Sådan erstattes en streng i en SQL Server-tabelkolonne

  4. dette er fejl ORA-12154:TNS:kunne den angivne forbindelses-id ikke løses?