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

Jak opisać tabelę w Oracle bez użycia polecenia DESCRIBE?

Szukasz USER_TAB_COLUMNS - wszystkie kolumny i ich opisy w schemacie, w którym zapytanie jest wykonywane - lub ALL_TAB_COLUMNS - to samo z wyjątkiem wszystkich tabel, do których użytkownik ma uprawnienia do przeglądania.

Typowym zapytaniem może być:

select *
  from user_tab_columns
 where table_name = 'MY_TABLE'
 order by column_id

column_id to "kolejność" kolumny w tabeli.

Powinieneś upewnić się, że 'MY_TABLE' jest pisane wielkimi literami, chyba że dodałeś tabele z wielkością liter (zły pomysł), w którym to przypadku musisz użyć czegoś takiego jak = "MyTable" .

W szczególności desc jest odpowiednikiem tego, który ukradłem z ss64, dobrego zasobu Oracle:

select column_name as "Name"
     , nullable as "Null?"
     , concat(concat(concat(data_type,'('),data_length),')') as "Type"
  from user_tab_columns
 where table_name = 'MY_TABLE';

Możesz znaleźć wszystkie tego rodzaju widoki, select * from dictionary , który jest najwyższym poziomem słownika danych lub przeglądając dokumentację.

Istnieje również DBA_TAB_COLUMNS , czyli to samo co ALL_TAB_COLUMNS , ale dla każdej tabeli w bazie danych. Zakłada się, że masz uprawnienia do przeglądania zarówno tego, jak i tabel. Jeśli nie masz dostępu do tej tabeli, musisz poprosić administratora DBA o przyznanie Ci SELECT ANY DICTIONARY przywilej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zakleszczenia w Oracle

  2. CONNECT BY lub zapytania hierarchiczne w RDBMS innych niż Oracle

  3. Kontenery Oracle dla J2EE (OC4J) w R12

  4. Nieprawidłowy identyfikator SQL

  5. Jak wywołać procedurę składowaną Oracle w Pythonie?