Как я могу получить имена столбцов от таблицы в Oracle?

174
задан Community 23 May 2017 в 11:54
поделиться

5 ответов

Можно запросить таблицу USER_TAB_COLUMNS для метаданных столбца таблицы.

SELECT table_name, column_name, data_type, data_length
FROM USER_TAB_COLUMNS
WHERE table_name = 'MYTABLE'
178
ответ дан baretta 23 November 2019 в 20:31
поделиться

Другие ответы достаточно отвечают на вопрос, но я думал, что поделюсь некоторой дополнительной информацией. Другие описывают, "ОПИСЫВАЮТ таблицу" синтаксис для получения информации таблицы. Если Вы хотите получить информацию в том же формате, но без использования ОПИСЫВАЮТ, Вы могли сделать:

SELECT column_name as COLUMN_NAME, nullable || '       ' as BE_NULL,
  SUBSTR(data_type || '(' || data_length || ')', 0, 10) as TYPE
 FROM all_tab_columns WHERE table_name = 'TABLENAME';

, Вероятно, не имеет значения очень, но я описал его ранее, и это, кажется, соответствует.

8
ответ дан Sasha 23 November 2019 в 20:31
поделиться

Та информация хранится в ALL_TAB_COLUMNS системная таблица:

SQL> select column_name from all_tab_columns where table_name = 'DUAL';

DUMMY

Или Вы могли DESCRIBE таблица при использовании SQL*PLUS:

SQL> desc dual
Name                               Null?    Type
----------------------------------------------------- -------- ---------------------- -------------
DUMMY                               VARCHAR2(1)
14
ответ дан Jon Ericson 23 November 2019 в 20:31
поделиться

Можно сделать это:

describe EVENT_LOG

или

desc EVENT_LOG

Примечание: только применимый, если Вы знаете имя таблицы и специально для Oracle.

39
ответ дан mathguy 23 November 2019 в 20:31
поделиться

В SQL Server...

SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE type = 'V' AND [Name] = 'Your table name')

Тип = 'V' для Типа представлений = 'U' для таблиц

67
ответ дан Eppz 23 November 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: