Oracle получить список полей таблицы

Обновлено: 04.07.2024

Как запросить базу данных Oracle, чтобы отобразить имена всех таблиц в ней?

@MartinThoma Нету. попробовал сначала, прежде чем прибегнуть к Google

Это предполагает, что у вас есть доступ к представлению DBA_TABLES словаря данных. Если у вас нет этих привилегий, но они нужны, вы можете запросить, чтобы администратор БД явно предоставил вам привилегии для этой таблицы, или чтобы администратор БД предоставил вам SELECT ANY DICTIONARY привилегию или SELECT_CATALOG_ROLE роль (любая из которых позволит вам запросить любую таблицу словаря данных). ). Конечно, вы можете захотеть исключить определенные схемы, такие как SYS и SYSTEM имеющие большое количество таблиц Oracle, которые вам, вероятно, не нужны .

Кроме того, если у вас нет доступа DBA_TABLES , вы можете просмотреть все таблицы, к которым у вашей учетной записи есть доступ, через ALL_TABLES представление:

Хотя это может быть подмножеством таблиц, доступных в базе данных ( ALL_TABLES показывает информацию обо всех таблицах, к которым у вашего пользователя есть доступ).

Если вас интересуют только те таблицы, которыми вы владеете, а не те, к которым у вас есть доступ, вы можете использовать USER_TABLES :

Поскольку он USER_TABLES содержит информацию только о тех таблицах, которыми вы владеете, у него нет OWNER столбца - владельцем по определению является вы.

Oracle также имеет ряд устаревших данных словаря views-- TAB , DICT , TABS и CAT для example-- , которые можно было бы использовать. В целом, я бы не советовал использовать эти устаревшие представления, если вам абсолютно не нужно перенести свои сценарии в Oracle 6. Oracle не изменяла эти представления в течение длительного времени, поэтому у них часто возникают проблемы с объектами более новых типов. Например, TAB и CAT представления, и представления показывают информацию о таблицах, которые находятся в корзине пользователя, в то время как [DBA|ALL|USER]_TABLES все представления отфильтровывают их. CAT также показывает информацию о материализованных журналах представлений с TABLE_TYPE «TABLE», что вряд ли будет тем, что вы действительно хотите. DICT объединяет таблицы и синонимы и не говорит вам, кто владеет объектом.


содержание 1, основная функция MPI 2, точка-точка функция связи 3, коллективная функция связи 1, основная функция MPI MPI_Init(&argc, &argv) Информировать системы MPI для выполнения всех необх.

Примечание 9: EL выражение


JVM память

концепция Виртуальная машина JVM управляет собственной памятью, которая разделяет память во многие блоки, наиболее распространенной для памяти стека и памяти кучи. 1 структура виртуальной машины JVM H.

Проблема сетевого запроса на Android 9.0

вЗапустите Android 9 (API Уровень 28) или вышеНа устройстве операционной системы Android, чтобы обеспечить безопасность пользовательских данных и устройств, использование по умолчанию для зашифрованно.


Учебная запись по Webpack (3) В статье рассказывается о создании webpack4.0.

предисловие Для изучения веб-пакета автор также предпринял много обходных путей. Есть много вещей, которые я хочу знать, но я не могу их найти. Автор поможет вам быстро начать работу. Цель этой статьи.

Вам также может понравиться

Сетевой HDU - 3078 мультивикация LCA

The ALPC company is now working on his own network system, which is connecting all N ALPC department. To economize on spending, the backbone network has only one router for each department, and N-1 op.

Деревянная палочка Luogu P1120 [Data Enhanced Version] Поиск

Метафизический разрез, просто просмотрите поиск Я чувствую, что процедура поиска состоит в том, чтобы сначала набрать общую структуру, а затем шаг за шагом оптимизировать процесс сокращения. 1. Длина .

Используйте Maven для запуска модульных тестов

Используйте Maven для запуска модульных тестов Чтобы запустить модульные тесты через Maven, введите эту команду: Это запустит весь модульный тест в вашем проекте. Тематическое исследование Создайте дв.


как вывести с помощью sql запроса список полей таблицы в MSSQL
??

типа desc оракле и в mysql ??если такое в MSSQL

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Как с помощью sql-запроса переименовать таблицу?
Народ, подскажите, плиз, как с помощью sql-запроса переименовать таблицу.


Как суммировать столбцы из таблицы с помощью запроса?
как суммировать столбцы из таблицы с помощью запроса ? примерно так ? мне нужно вывести в.

Как с помощью запроса вернуть последнюю запись таблицы
Добрый день всем! Расскажите, плиз, как с помощью SELECT вернуть последнюю запись в таблице.

Получить перечень полей таблицы или запроса
народ - подскажите - как в MS SQL получить перечень полей таблицы или запроса - (очень надо) знаю.

Bazile пасибо получилось,
Yorik твой запрос не сработал. Не буду создавать новую тему, подниму эту. В общем, ни одно из выше описанных решений не работает. Делаю в Borland C++ Builder 6; поставщик: Microsoft Jet 4.0 OLE DB; использую ADO; System.mdw подключена. В решении от yorik не находит базу dbo. В решении от bazile не находит syscolumns. В интернете находил ещё решения:
Не находит таблицу INFORMATION_SCHEMA.
В общем, какие ещё решения есть? Не исключаю. Честно говоря, толком не знал, куда писать. Правда решение уже нашёл, но на SQL.

Как с помощью SQL-запроса определить наличие таблицы в БД?
Вопрос вобщем-то про SQL. Извините, если за OFF-topic сочтете. Как с помощью SQL-запроса.


Как SQL запросом получить список полей таблицы текущей базы данных?
Пробую получить поля таблицы текущей базы данных. Нашёл пример: SELECT COLUMN_NAME FROM.


Формирование SQL запроса копирования полей из одной таблицы в другую
Всем привет! Не могу родить SQL-запрос. В базе sst.mdb есть таблицы SST и nSST. Нужно из SST в.


Как с помощью MonthCalendar вывести в DataGridView с sql таблицы данные с определенной датой?
Всем доброго времени суток! Подскажите пожалуйста как с помощью MonthCalendar вывести в.

Можно ли искать каждое поле каждой таблицы для определенного значения в Oracle?

В некоторых таблицах есть сотни таблиц с тысячами строк, поэтому я знаю, что это может занять очень много времени. Но единственное, что я знаю, это то, что значение для поля, к которому я хотел бы запросить, - это 1/22/2008P09RR8 . <

Я попытался использовать этот оператор ниже, чтобы найти соответствующий столбец, основанный на том, что, по моему мнению, он должен быть назван, но не дал никаких результатов.

В этой базе данных нет документации, и я понятия не имею, откуда это поле извлекается.

Я пробовал использовать этот оператор ниже найти соответствующий столбец на основе что я думаю, это нужно назвать, но это не получило результатов. *

Столбец не является объектом. Если вы имеете в виду, что вы ожидаете, что имя столбца будет похоже на "% DTN%", запрос, который вы хотите, следующий:

Но если строка "DTN" - это просто догадка с вашей стороны, это, вероятно, не поможет.

Кстати, насколько вы уверены, что "1/22/2008P09RR8" - это значение, выбранное непосредственно из одного столбца? Если вы вообще не знаете, откуда это происходит, это может быть конкатенация нескольких столбцов или результат некоторой функции или значение, находящееся в вложенном объекте таблицы. Таким образом, вы можете оказаться на дикой охоте на гусей, пытаясь проверить каждый столбец за это значение. Не можете ли вы начать с того, какое клиентское приложение отображает это значение и попытаться выяснить, какой запрос он использует для его получения?

В любом случае, ответ diciu дает один метод генерации SQL-запросов для проверки каждого столбца каждой таблицы для значения. Вы также можете делать подобные вещи полностью в одном сеансе SQL, используя блок PL/SQL и динамический SQL. Вот несколько поспешно написанный код для этого:

Есть несколько способов сделать его более эффективным.

В этом случае, учитывая значение, которое вы ищете, вы можете четко исключить любой столбец с типом NUMBER или DATE, что уменьшит количество запросов. Возможно, даже ограничьте его столбцами, где тип похож на "% CHAR%".

Вместо одного запроса на столбец можно построить один запрос для таблицы следующим образом:

Как я могу запросить базу данных Oracle для отображения имен всех таблиц в ней?

ОТВЕТЫ

Ответ 1

Предполагается, что у вас есть доступ к представлению словаря данных DBA_TABLES . Если у вас нет этих привилегий, но они нуждаются в них, вы можете запросить, чтобы администратор базы данных явно предоставлял вам привилегии в этой таблице или что администратор базы данных предоставляет вам привилегию SELECT ANY DICTIONARY или SELECT_CATALOG_ROLE (любой из которых позволит вам для запроса любой таблицы словаря данных). Конечно, вы можете исключить некоторые схемы, такие как SYS и SYSTEM , которые имеют большое количество таблиц Oracle, которые вам, вероятно, не волнует.

В качестве альтернативы, если у вас нет доступа к DBA_TABLES , вы можете увидеть все таблицы, к которым ваша учетная запись имеет доступ, через представление ALL_TABLES :

Хотя это может быть подмножество таблиц, доступных в базе данных ( ALL_TABLES показывает вам информацию для всех таблиц, которым был предоставлен ваш пользователь).

Если вас интересуют только те таблицы, которые у вас есть, а не те, к которым у вас есть доступ, вы можете использовать USER_TABLES :

Так как USER_TABLES имеет только информацию о собственных таблицах, у нее нет столбца OWNER - владелец, по определению, вы.

Oracle также имеет ряд устаревших видов словарей данных - TAB , DICT , TABS и CAT например - которые могут быть использованы. В общем, я бы не предложил использовать эти устаревшие представления, если вам не нужно полностью использовать ваши сценарии для Oracle 6. Oracle не изменил эти представления за долгое время, поэтому у них часто возникают проблемы с новыми типами объектов. Например, представления TAB и CAT отображают информацию о таблицах, которые находятся в корзине пользователя, в то время как теги [DBA|ALL|USER]_TABLES все фильтруют их. CAT также показывает информацию о материализованных журналах просмотра с TABLE_TYPE в таблице "ТАБЛИЦА", которая вряд ли будет тем, что вы действительно хотите. DICT объединяет таблицы и синонимы и не говорит вам, кому принадлежит этот объект.

Ответ 2

Запрос user_tables и dba_tables не работает.
Это сделал:

Ответ 3

Идя еще на один шаг, существует другое представление, называемое cols (all_tab_columns), которое может использоваться для определения того, какие таблицы содержат заданное имя столбца.

чтобы найти все таблицы, имеющие имя, начинающееся с EST, и столбцы, содержащие CALLREF в любом месте их имен.

Это может помочь при разработке тех столбцов, к которым вы хотите присоединиться, например, в зависимости от ваших соглашений об именах таблиц и столбцов.

Ответ 4

Для лучшего просмотра с помощью sqlplus

Если вы используете sqlplus , вы можете сначала настроить несколько параметров для более удобного просмотра, если ваши столбцы становятся искалеченными (эти переменные не должны сохраняться после выхода из сеанса sqlplus ):

Показать все таблицы

Затем вы можете использовать что-то вроде этого, чтобы увидеть все имена таблиц:

Показать таблицы, которыми вы владеете

Как упоминает @Justin Cave, вы можете использовать это, чтобы отображать только те таблицы, которые у вас есть:

Не забывайте о представлениях

Имейте в виду, что некоторые "таблицы" могут быть "видами", поэтому вы также можете попробовать запустить что-то вроде:

Результаты

Это должно привести к тому, что выглядит довольно приемлемым, например:

result

Ответ 5

Простой запрос для выбора таблиц для текущего пользователя:

Ответ 6

Ответ 7

Попробуйте просмотреть словарные данные ниже.

Ответ 8

Существует 3 данных для этого

DBA_TABLES описывает все реляционные таблицы в базе данных.

Описание реляционных таблиц, доступных пользователю

USER_TABLES описывает реляционные таблицы, принадлежащие текущему пользователю. Это представление не отображает столбец ВЛАДЕЛЕЦ.

Ответ 9

Попробуйте выбрать user_tables, в котором перечислены таблицы, принадлежащие текущему пользователю.

Ответ 10

С помощью любого из них вы можете выбрать:

Ответ 11

База данных Oracle для отображения имен всех таблиц, используя запрос ниже

Ответ 12

предоставляет все таблицы всех пользователей только в том случае, если пользователь, с которым вы вошли в систему, имеет привилегии sysdba .

Ответ 13

Ниже приведен закомментированный фрагмент SQL-запросов, описывающий, как можно использовать параметры:

Ответ 14

Вы можете использовать Oracle Data Dictionary, чтобы получить информацию об объектах oracle.

Вы можете получить список таблиц по-разному:

Затем вы можете получить столбцы таблицы, используя имя таблицы:

Затем вы можете получить список зависимостей (триггеры, представления и т.д.):

Затем вы можете получить текстовый источник этих объектов:

И вы можете использовать USER или ALL представления вместо DBA , если хотите.

Ответ 15

Я не нашел ответа, который указывал бы на использование

Ответ 16

Ответ 17

Мы можем получить все таблицы, включая детали столбцов, из запроса ниже:

Ответ 18

Следующий запрос содержит только список необходимых данных, тогда как другие ответы дали мне дополнительные данные, которые меня только смутили.

Ответ 19

Новая функция, доступная в SQLcl (это бесплатный интерфейс командной строки для Oracle Database),

Tables псевдоним.

Вот несколько примеров, показывающих использование и дополнительные аспекты функции. Сначала подключитесь к sql.exe командной строки sql ( sql.exe в windows). Рекомендуется вводить эту конкретную команду sqlcl перед выполнением любых других команд или запросов, которые отображают данные.

SQL> tables

Чтобы узнать, на что ссылается псевдоним tables , вы можете просто использовать alias List<alias>

Вам не нужно определять этот псевдоним, так как он используется по умолчанию в SQLcl. Если вы хотите получить список таблиц из определенной схемы, используя новый пользовательский псевдоним и передавая имя схемы в качестве аргумента привязки с отображением только набора столбцов, вы можете сделать это, используя

SQL> alias tables_schema = select owner, table_name, last_analyzed from all_tables where owner = :ownr;

После этого вы можете просто передать имя схемы в качестве аргумента.

SQL> tables_schema HR

Более сложный предопределенный псевдоним известен как Tables2 , который отображает несколько других столбцов.

Чтобы узнать, какой запрос выполняется в фоновом режиме, введите

Это покажет вам немного более сложный запрос вместе с предопределенными определениями column обычно используемыми в SQL * Plus.

Джефф Смит объясняет больше об псевдонимах здесь

Ответ 20

Я искал список всех имен столбцов, принадлежащих таблице схемы, отсортированный по порядку идентификатора столбца.

Вот запрос, который я использую: -

Ответ 21

Действительно, список таблиц можно получить с помощью запросов SQL. Это можно сделать также с помощью инструментов, которые позволяют создавать словари данных, такие как ERWIN, Toad Data Modeler или ERBuilder. С этими инструментами, в дополнение к именам таблиц, у вас будут поля, их типы, объекты типа (триггеры, последовательности, домен, представления. )

Ниже приведены шаги, которые необходимо выполнить для создания определения таблиц:

  1. Вы должны перепроектировать вашу базу данных
    • В Toad Data Modeler: Меню → Файл → Реверс инжиниринг → Мастер реинжиниринга
    • В ERBuilder Data Modeler: Меню → Файл → Обратный инженер

Ваша база данных будет отображаться в программном обеспечении в виде диаграммы отношений сущностей.

Читайте также: