Oracle
 sql >> база данни >  >> RDS >> Oracle

Как мога да опиша таблица в Oracle, без да използвам командата DESCRIBE?

Търсите 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 привилегия.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:разлика между max(id)+1 и sequence.nextval

  2. Метод за събиране:Процедура DELETE в базата данни на Oracle

  3. Как да активирате режима на архивен дневник в Oracle Database 19c

  4. Предайте стойности, прочетени от файл като вход към SQL заявка в Oracle

  5. Функция LISTAGG() в Oracle