sql >> Databasteknik >  >> RDS >> Oracle

Hur får man tabellkommentarer via SQL i Oracle?

Eftersom 10g Oracle inte omedelbart släpper tabeller när vi utfärdar en DROP TABLE-sats. Istället döper den om dem så här BIN$IN1vjtqhTEKcWfn9PshHYg==$0 och lägger dem i papperskorgen. Detta gör att vi kan återställa tabeller vi inte menade att släppa. Läs mer .

Tabeller i papperskorgen är fortfarande tabeller, så de visas i ALL_TABLES och liknande vyer. Så om du bara vill se kommentarer som endast hänför sig till levande (ej släppta) tabeller måste du filtrera efter tabellnamn:

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

Du har rätt, det skulle vara otroligt. Så jag kollade dokumentationen och det visade sig att Oracle 10g lade till en kolumn som heter DROPPED i USER_/ALL_/DBA_TABLES-vyerna.

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'
/

Kolla in dokumentationen . Uppenbarligen kräver behovet av att gå med i vyn ALL_TABLES mer att skriva än att filtrera på namnet, så beroende på vårt behov kan det vara lättare att behålla den ursprungliga WHERE-satsen.



  1. Hur får man poster skapade under innevarande månad?

  2. Det går inte att använda DROP TABLE OM FINNS i schema.sql för en Spring Boot-applikation

  3. välja tabellsortering för universella tecken

  4. Postgres FEL:kunde inte öppna filen för läsning:Tillstånd nekad