Вы ищете USER_TAB_COLUMNS
- все столбцы и их описания в схеме, в которой выполняется запрос, - или ALL_TAB_COLUMNS
- то же, за исключением для всех таблиц, которые пользователь имеет разрешение на просмотр.
Типичный запрос может быть:
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
column_id
- это «порядок» столбца в таблице.
Вы должны убедиться, что «MY_TABLE» капитализирован, если вы не добавляли таблицы с обсадкой (плохая идея), и в этом случае вам нужно использовать что-то вроде = "MyTable"
.
В частности desc
эквивалентно следующему, который я украл из ss64 , хорошего ресурса 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';
Вы можете найти все это [3].
Существует также [], который является верхним уровнем словаря данных или смотря на f9], что совпадает с ALL_TAB_COLUMNS
, но для каждой таблицы в базе данных. Это предполагает, что у вас есть привилегии для просмотра и его, и таблиц. Если у вас нет доступа к этой таблице, вам нужно, чтобы ваш администратор базы данных предоставил вам привилегию SELECT ANY DICTIONARY
.