Търсите 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';
Можете да намерите целия този вид изглед като select * from dictionary
, което е най-горното ниво на речника с данни или като погледнете документацията.
Има и DBA_TAB_COLUMNS
, което е същото като ALL_TAB_COLUMNS
, но за всяка таблица в базата данни. Това предполага, че имате привилегиите да преглеждате както него, така и таблиците. Ако нямате достъп до тази таблица, трябва да накарате вашия DBA да ви предостави SELECT ANY DICTIONARY
привилегия.