sql >> Databáze >  >> RDS >> Oracle

Jak získat komentáře k tabulce přes SQL v Oracle?

Protože 10g Oracle nezahazuje tabulky okamžitě, když vydáváme příkaz DROP TABLE. Místo toho je přejmenuje takto BIN$IN1vjtqhTEKcWfn9PshHYg==$0 a hodí je do koše. To nám umožňuje obnovit tabulky, které jsme nechtěli zahodit. Další informace .

Tabulky v koši jsou stále tabulky, takže se zobrazují v ALL_TABLES a podobných zobrazeních. Pokud tedy chcete vidět pouze komentáře týkající se pouze živých (nevypuštěných) tabulek, musíte filtrovat podle názvu tabulky:

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

Máte pravdu, bylo by to neuvěřitelné. Zkontroloval jsem tedy dokumentaci a ukázalo se, že Oracle 10g přidal do zobrazení USER_/ALL_/DBA_TABLES sloupec s názvem DROPPED.

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

Prohlédněte si dokumentaci . Potřeba připojit se k zobrazení ALL_TABLES samozřejmě vyžaduje více psaní než filtrování názvu, takže v závislosti na naší potřebě může být jednodušší zachovat původní klauzuli WHERE.



  1. Mysql Group V 24hodinových intervalech

  2. Oprava „ERROR 1222 (21000):Použité příkazy SELECT mají jiný počet sloupců“ při použití UNION v MariaDB

  3. Oracle Materialized Views s primárním klíčem

  4. Vynutit InnoDB znovu zkontrolovat cizí klíče na stole/tabulkách?