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.