Как я могу получить имена столбцов из таблицы в Oracle? - PullRequest
168 голосов
/ 17 января 2009

Мне нужно запросить базу данных, чтобы получить имена столбцов , чтобы не путать их с данными в таблице. Например, если у меня есть таблица с именем EVENT_LOG, которая содержит eventID, eventType, eventDesc и eventTime, то я бы хотел получить эти имена полей из запроса и ничего больше.

Я нашел, как это сделать в:

Но мне нужно знать: как это можно сделать в Oracle ?

Ответы [ 25 ]

0 голосов
/ 09 июля 2014

Попробуйте это

select * from sys.all_columns c join sys.objects o on c.object_id=o.object_id where o.name = 'TABLENAME' and c.name like '%COLUMN NAME%'
0 голосов
/ 03 июля 2014

Наткнулся на этот вопрос в поисках доступа к именам столбцов в Teradata, поэтому я добавлю ответ на их «вкус» SQL:

SELECT ColumnName
FROM DBC.Columns
WHERE DatabaseName='DBASE_NAME'
AND TableName='TABLE_NAME';

Информация хранится в базе данных DBC.

Получение типов данных немного сложнее: Получить тип столбца с использованием системных таблиц teradata

0 голосов
/ 09 июля 2013

Ответ здесь: http://php.net/manual/en/function.mysql-list-fields.php Я бы использовал следующий код в вашем случае:

$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$fields = array();
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        $fields[] = $row['Field'];
    }
}
0 голосов
/ 24 апреля 2014

Просто выберите первую строку в таблице, для оракула: select * from <table name> where rownum = 1;

0 голосов
/ 22 сентября 2013

Я сделал это так

SELECT 
    TOP 0
    *
FROM
    Posts

Это работает даже в http://data.stackexchange.com, чьи сервисные таблицы мне неизвестны!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...