Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak uzyskać komentarze do tabeli przez SQL w Oracle?

Ponieważ 10g Oracle nie usuwa natychmiast tabel, gdy wydajemy instrukcję DROP TABLE. Zamiast tego zmienia ich nazwy w następujący sposób BIN$IN1vjtqhTEKcWfn9PshHYg==$0 i wkłada je do kosza. To pozwala nam odzyskać tabele, których nie chcieliśmy usunąć. Dowiedz się więcej .

Tabele w koszu nadal są tabelami, więc pojawiają się w widokach ALL_TABLES i podobnych. Więc jeśli chcesz zobaczyć tylko komentarze odnoszące się tylko do żywych (nieupuszczonych) tabel, musisz filtrować według nazwy tabeli:

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

Masz rację, to byłoby niesamowite. Sprawdziłem więc dokumentację i okazało się, że Oracle 10g dodał kolumnę o nazwie DROPPED do widoków 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'
/

Zapoznaj się z dokumentacją . Oczywiście potrzeba dołączenia do widoku ALL_TABLES wymaga więcej wpisywania niż filtrowania według nazwy, więc w zależności od naszych potrzeb może być po prostu łatwiej zachować oryginalną klauzulę WHERE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz oracle z nodejs

  2. Operator dołączania Oracle

  3. Błąd SQL Oracle LEFT JOIN i SUBQUERY:ORA-00905:brak słowa kluczowego

  4. Jak przekonwertować SDO_GEOMTRY w GeoJSON

  5. Funkcja COS() w Oracle