U zoekt naar USER_TAB_COLUMNS
- alle kolommen en hun beschrijvingen in het schema waarin de query wordt uitgevoerd - of ALL_TAB_COLUMNS
- hetzelfde behalve voor alle tabellen die de gebruiker mag bekijken.
Een typische vraag zou kunnen zijn:
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
column_id
is de "volgorde" van de kolom in de tabel.
Je moet ervoor zorgen dat 'MY_TABLE' met een hoofdletter wordt geschreven, tenzij je tabellen met hoofdletters hebt toegevoegd (een slecht idee). In dat geval moet je iets als = "MyTable"
gebruiken .
Specifiek desc
is gelijk aan het volgende dat ik heb gestolen van ss64, een goede Oracle-bron:
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';
Je kunt dit soort weergaven vinden door select * from dictionary
, het hoogste niveau van de datadictionary of door de documentatie te bekijken.
Er is ook de DBA_TAB_COLUMNS
, wat hetzelfde is als ALL_TAB_COLUMNS
, maar voor elke tabel in de database. Dit veronderstelt dat u de privileges hebt om zowel de tabel als de tabellen te bekijken. Als u geen toegang heeft tot deze tabel, moet u uw DBA verkrijgen om u de SELECT ANY DICTIONARY
te verlenen. voorrecht.