Дополнительно
Получить список всех таблиц в Oracle?
Как запросить базу данных Oracle, чтобы отобразить имена всех таблиц в ней?
1069
20
Как запросить базу данных Oracle, чтобы отобразить имена всех таблиц в ней?
Это при условии, что у вас есть доступ к представлению словаря данных
DBA_TABLES
. Если у вас нет таких привилегий, но они вам нужны, вы можете попросить DBA явно предоставить вам привилегии на эту таблицу, или чтобы DBA предоставил вам привилегию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
в "TABLE", что вряд ли является тем, что вам действительно нужно.DICT
объединяет таблицы и синонимы и не сообщает вам, кому принадлежит объект.Запросы
user_tables
иdba_tables
не сработали.А вот этот сработал:
Переход на один шаг дальше, есть еще один вид под названием седла (all_tab_columns), которые могут быть использованы, чтобы определить, какие таблицы содержит имя столбца.
Например:
найти все таблицы, имеющие имя, начинающееся с EST и столбцы, содержащие CALLREF в любой точке их имена.
Это может помочь при работе, какие столбцы вы хотите присоединиться к НА, к примеру, в зависимости от вашей таблицы и столбца именования.
Для более удобного просмотра с для sqlplus`
Если вы're, используя
для sqlplus
возможно, вы захотите настроить несколько параметров для более хорошего просмотра, если ваши колонки получают искаженное (эти переменные не должны сохраняться после выхода из вашего `для sqlplus сессии ):Показать Все Таблицы
Затем вы можете использовать что-то вроде этого, чтобы увидеть имена всех таблиц:
Показать Таблицы
Как @Джастин пещеру упоминает, вы можете использовать это, чтобы показать только столы, которыми вы владеете:
Дон'т забыть о мнения
Имейте в виду, что какая-то "столы" и на самом деле может быть "Вид" Так вы можете также попробовать запустить что-то вроде:
Результаты
Это должно дать что-то, что выглядит вполне приемлемо, как:
Простой запрос для выбора таблиц для текущего пользователя:
----------------Или------------------
----------------Или------------------
Попробуйте под видом словаря данных.
Попробуйте выбрать из user_tables, где перечислены таблицы, принадлежащие текущему пользователю.
С любой из этих можно выбрать:
Базы данных Oracle, чтобы отобразить имена всех таблиц с помощью запроса ниже в <предварительно&ГТ; Выберите владельцем, имя_таблицы из dba_tables;
Выберите владельцем, имя_таблицы из all_tables;
Select имя_таблицы из user_tables и;&ЛТ;/пре&ГТ; вист больше : http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html
дает все таблицы всех пользователей, только если пользователь, с которым вы вошли в систему, имеющие привилегий пользователя sysdba`.
В том числе:
Ниже находится прокомментировал фрагмент SQL-запросов, описывающих, как вариантов, которые вы можете использовать:
Вы можете использовать словарю данных Oracle для получения информации об объектах в Oracle.
Вы можете получить список таблиц различными способами:
или например:
Затем вы можете получить столбцы таблицы, используя имя таблицы:
Затем вы можете получить список зависимостей (триггеры, представления и т. д.):
Затем вы можете получить текст Источник этих объектов:
И вы можете использовать
пользователя
иливсе
, а неАДБ
если вы хотите.Я не нашел ответа, которые бы указывали на использование
поэтому решил добавить также мою версию. Этот вид на самом деле больше возвращает, что DBA_TABLES как он возвращает объект, а также (http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm).
Мы можем получить все таблицы, включая сведения о столбцах из ниже запроса:
Следующий список только для запроса необходимых данных, в то время как другие ответы дали мне дополнительные данные, которые только путают меня.
Новая функция доступна в SQLcl( который является бесплатным интерфейсом командной строки для базы данных Oracle) является
Таблиц
псевдоним.Вот несколько примеров, демонстрирующие использование и дополнительные аспекты. Во-первых, подключение к
в SQL
командной строки (sql.exe
в Windows) сессии. Рекомендуется вводить эту конкретную команду sqlcl перед выполнением любой другой команды или запросы, которые отображают данные.В SQL&ГТ; таблицы
Чтобы знать, что псевдоним
таблиц
имеет в виду, вы можете просто использовать псевдоним список <псевдоним&ГТ;`Вы Don'т иметь, чтобы определить этот псевдоним, как это происходит по умолчанию при SQLcl. Если вы хотите получить список таблиц из определенной схемы, используя новый пользовательский псевдоним и передает имя схемы в качестве аргумента связываются с только набор столбцов отображается, вы можете сделать это, используя
В SQL&ГТ; псевдоним tables_schema = выбор владельца, имя_таблицы, last_analyzed из all_tables где владелец = :ownr;
После этого вы можете просто передать имя схемы в качестве аргумента
В SQL&ГТ; tables_schema ч
Более сложные стандартный псевдоним известен как
Tables2
, которая отображает несколько столбцов.Чтобы знать, что запрос выполняется в фоновом режиме, введите
Это покажет вам немного более сложный запрос, а также определения предопределенный
столбец
обычно используется в SQL*плюс.Джефф Смит объясняет больше о псевдонимах здесь
Действительно, можно иметь список таблиц через SQL-запросы.можно сделать это также через инструменты, которые позволяют создание словарей данных, таких как Эрвин, жаба моделирование данных или ERBuilder. С помощью этих инструментов, помимо названия таблицы, вы будете иметь полей, их типов, как объекты(триггеры, последовательности, домен, взгляды...)
Ниже шаги, чтобы следовать, чтобы создать ваше определение таблицы:
Ваша база данных будет отображаться в программе в качестве диаграммы вариантов использования.
Я искал, чтобы получить список всех имен столбцов таблицы схемы, отсортированный по приказу идентификатор столбца.
Здесь'ы запрос я использую: -