Мне нужно запросить базу данных, чтобы получить имена столбцов , чтобы не путать с данными в таблице. Например, если у меня есть таблица с именем , EVENT_LOG
который содержит eventID
,eventType
, eventDesc
, и eventTime
, то я хотел бы получить эти имена полей из запроса и ничего другого.
Я нашел, как это сделать в:
Но мне нужно знать: как это можно сделать в Oracle ?
USER_TAB_COLUMNS
наall_tab_columns
. Чтобы быть на 100% уверенным в результате, вы можете быть владельцем.В SQL Server ...
Type = 'V' для представлений Type = 'U' для таблиц
источник
Ты можешь сделать это:
или
Примечание: применимо, только если вы знаете имя таблицы и специально для Oracle.
источник
Для SQL Server 2008 мы можем использовать information_schema.columns для получения информации о столбцах
источник
INFORMATION_SCHEMA
таблицы являются стандартными таблицами метаданных ANSI. Любая хорошая, современная СУБД будет иметь их.Я полагаю, что для SQLite вы можете использовать что-то вроде следующего:
Объяснение с sqlite.org:
Эта прагма возвращает одну строку для каждого столбца в именованной таблице. Столбцы в наборе результатов включают имя столбца, тип данных, может ли столбец иметь значение NULL и значение по умолчанию для столбца. Столбец «pk» в наборе результатов равен нулю для столбцов, которые не являются частью первичного ключа, и является индексом столбца в первичном ключе для столбцов, которые являются частью первичного ключа.
Смотрите также: Sqlite.org Pragma Таблица Info
источник
Эта информация хранится в
ALL_TAB_COLUMNS
системной таблице:Или вы могли
DESCRIBE
бы таблицу, если вы используете SQL * PLUS:источник
ALL_TAB_COLUMNS
официальной ссылке на базу данных Oracle . Это представление описывает столбцы таблиц, представлений и кластеров, доступных текущему пользователю.select column_name from all_tab_columns where table_name = 'dbo.usertbl';
Другие ответы достаточно отвечают на вопрос, но я подумал, что поделюсь с вами какой-нибудь дополнительной информацией. Другие описывают синтаксис «DESCRIBE table» для получения информации о таблице. Если вы хотите получить информацию в том же формате, но без использования DESCRIBE, вы можете сделать:
Вероятно, не имеет большого значения, но я написал это ранее, и, кажется, подходит.
источник
Incorrect Syntax near '|'
об ошибкеДля Oracle
источник
источник
В твоем случае :
источник
Для MySQL используйте
источник
Даже это также один из способов, которым мы можем использовать его
источник
Для SQL Server:
источник
источник
Вы также можете попробовать это, но это может быть больше информации, чем вам нужно:
источник
Mysql
Это вернет результат примерно так:
Затем вытащить значения вы можете просто
Это также отлично подходит для динамической передачи входных данных, так как REGEXP требует '|' для нескольких входов, но это также способ хранить данные отдельно и легко хранить / передавать в классы / функции.
Попробуйте также добавить фиктивные данные для обеспечения безопасности при отправке и сравнить полученные данные при получении каких-либо ошибок.
источник
В Oracle есть два представления, которые описывают столбцы:
DBA_TAB_COLUMNS описывает столбцы всех таблиц, представлений и кластеров в базе данных.
USER_TAB_COLUMNS описывает столбцы таблиц, представлений и
кластеров, принадлежащих текущему пользователю. Этот вид не отображает
столбец ВЛАДЕЛЕЦ.
источник
Ответ здесь: http://php.net/manual/en/function.mysql-list-fields.php Я бы использовал следующий код в вашем случае:
источник
источник
Вы можете запустить этот запрос
источник
Просто выберите первую строку в таблице, для оракула:
select * from <table name> where rownum = 1;
источник
Наткнулся на этот вопрос в поисках доступа к именам столбцов в Teradata, поэтому я добавлю ответ для их «аромата» SQL:
Информация хранится в базе данных DBC.
Получение типов данных немного сложнее: получение типа столбца с помощью системных таблиц teradata
источник
Попробуй это
источник
Я сделал это так
Это работает даже на http://data.stackexchange.com, чьи сервисные таблицы мне неизвестны!
источник
источник