Du letar efter USER_TAB_COLUMNS
- alla kolumner och deras beskrivningar i schemat som frågan exekveras i - eller ALL_TAB_COLUMNS
- samma utom för alla tabeller som användaren har behörighet att visa.
En typisk fråga kan vara:
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
column_id
är "ordningen" för kolumnen i tabellen.
Du bör se till att 'MY_TABLE' är versaler om du inte har lagt till tabeller med skiftläge (en dålig idé) i vilket fall du behöver använda något som = "MyTable"
.
Närmare bestämt desc
motsvarar följande som jag stal från ss64, en bra Oracle-resurs:
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';
Du kan hitta all den här typen av vyer genom att select * from dictionary
, som är den översta nivån i dataordboken eller genom att titta på dokumentationen.
Det finns också DBA_TAB_COLUMNS
, vilket är samma som ALL_TAB_COLUMNS
, men för varje tabell i databasen. Detta förutsätter att du har behörighet att se både den och tabellerna. Om du inte har tillgång till den här tabellen måste du få din DBA för att ge dig SELECT ANY DICTIONARY
privilegium.