Получить список всех таблиц в Oracle?

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

Комментарии к вопросу (2)
Решение
SELECT owner, table_name
  FROM dba_tables

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

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

SELECT owner, table_name
  FROM all_tables

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

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

SELECT table_name
  FROM user_tables

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

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

Комментарии (6)

Запросы user_tables и dba_tables не сработали.
А вот этот сработал:

select table_name from all_tables  
Комментарии (1)

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

Например:

SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';

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

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

Комментарии (1)

Для более удобного просмотра с для sqlplus`

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

set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000

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

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

SELECT table_name, owner, tablespace_name FROM all_tables;

Показать Таблицы

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

SELECT table_name FROM user_tables;

Дон'т забыть о мнения

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

SELECT view_name FROM all_views;

Результаты

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

Комментарии (1)

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

  SELECT table_name FROM user_tables;
Комментарии (0)
    select object_name from user_objects where object_type='TABLE';

----------------Или------------------

    select * from tab;

----------------Или------------------

    select table_name from user_tables;
Комментарии (0)

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

tabs
dba_tables
all_tables
user_tables
Комментарии (0)

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

Комментарии (0)

С любой из этих можно выбрать:

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM DBA_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM ALL_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
Комментарии (0)

Базы данных Oracle, чтобы отобразить имена всех таблиц с помощью запроса ниже в <предварительно&ГТ; Выберите владельцем, имя_таблицы из dba_tables;

Выберите владельцем, имя_таблицы из all_tables;

Select имя_таблицы из user_tables и;&ЛТ;/пре&ГТ; вист больше : http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html

Комментарии (0)
select * from dba_tables

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

Комментарии (1)

В том числе:

SELECT owner, table_name as table_view
  FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
  FROM DBA_VIEWS
Комментарии (0)

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

-- need to have select catalog role
SELECT * FROM dba_tables;

-- to see tables of your schema
SELECT * FROM user_tables;

-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;
Комментарии (0)

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

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

select * 
from dba_tables

или например:

select * 
from dba_objects 
where object_type = 'TABLE' 

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

select * 
from dba_tab_columns

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

select * 
from dba_dependencies
where referenced_type='TABLE' and referenced_name=:t_name 

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

select * from dba_source

И вы можете использовать пользователя или все, а не АДБ если вы хотите.

Комментарии (0)

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

DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)

поэтому решил добавить также мою версию. Этот вид на самом деле больше возвращает, что DBA_TABLES как он возвращает объект, а также (http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm).

Комментарии (0)

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

SELECT * FROM user_tab_columns;
Комментарии (0)

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

select table_name from user_tables;
Комментарии (0)

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

Таблиц псевдоним.

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

SQL> set sqlformat ansiconsole     -- resizes the columns to the width of the 
                                   -- data to save space 

В SQL&ГТ; таблицы

TABLES
-----------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
..

Чтобы знать, что псевдоним таблиц имеет в виду, вы можете просто использовать псевдоним список <псевдоним&ГТ;`

SQL> alias list tables
tables - tables  - show tables from schema
--------------------------------------------------

 select table_name "TABLES" from user_tables

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

В SQL&ГТ; псевдоним tables_schema = выбор владельца, имя_таблицы, last_analyzed из all_tables где владелец = :ownr;

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

В SQL&ГТ; tables_schema ч

OWNER   TABLE_NAME               LAST_ANALYZED
HR      DUMMY1                   18-10-18
HR      YOURTAB2                 16-11-18
HR      YOURTABLE                01-12-18
HR      ID_TABLE                 05-12-18
HR      REGIONS                  26-05-18
HR      LOCATIONS                26-05-18
HR      DEPARTMENTS              26-05-18
HR      JOBS                     26-05-18
HR      EMPLOYEES                12-10-18
..
..

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

SQL> tables2

Tables
======
TABLE_NAME                 NUM_ROWS   BLOCKS   UNFORMATTED_SIZE COMPRESSION     INDEX_COUNT   CONSTRAINT_COUNT   PART_COUNT LAST_ANALYZED
AN_IP_TABLE                       0        0                  0 Disabled                  0                  0            0 > Month
PARTTABLE                         0        0                  0                           1                  0            1 > Month
TST2                              0        0                  0 Disabled                  0                  0            0 > Month
TST3                              0        0                  0 Disabled                  0                  0            0 > Month
MANAGE_EMPLYEE                    0        0                  0 Disabled                  0                  0            0 > Month
PRODUCT                           0        0                  0 Disabled                  0                  0            0 > Month
ALL_TAB_X78EHRYFK                 0        0                  0 Disabled                  0                  0            0 > Month
TBW                               0        0                  0 Disabled                  0                  0            0 > Month
DEPT                              0        0                  0 Disabled                  0                  0            0 > Month

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

alias list tables2

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

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

Комментарии (0)

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

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

  1. Вам придется перепроектировать базу данных
  • В сведения жаба моделирование: меню -и GT; файл -&ГТ; реинжиниринг -&ГТ; инженерный мастера
  • В ERBuilder данных-моделирование: меню -и GT; файл -&ГТ; реинжиниринг

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

  1. Создать свой словарь данных, который будет содержать ваше определение таблицы
  • В сведения жаба моделирование: меню -и GT; модели&ГТ; создать отчет -и GT; запустить
  • В ERBuilder сведения Моделист: меню -и gt; Инструменты -&ГТ; создать модель документации
Комментарии (2)

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

Здесь'ы запрос я использую: -

SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;
Комментарии (0)