Подсчитать количество таблиц в Oracle - PullRequest
20 голосов
/ 21 февраля 2011

Как в MySQL есть «SHOW TABLES», как вы считаете таблицы в Oracle DB.Небольшое исследование дало мне этот запрос:

select owner, count(*) from dba_tables

Так, как у MySQL есть стандартная команда, так ли у Oracle?

Ответы [ 11 ]

37 голосов
/ 21 февраля 2011

try:

SELECT COUNT(*) FROM USER_TABLES;

Ну, у меня нет оракула на моей машине, я запускаю mysql (комментарий OP)

на момент написания, этот сайт отлично подходит для тестирования на различных типах баз данных.

20 голосов
/ 21 февраля 2011

Да, ваш запрос будет работать, просто немного измените его.Ищите здесь ссылку: http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091

Запустите это:

SELECT TABLE_NAME FROM DBA_TABLES;

, чтобы получить список таблиц.

и Запустите это:

SELECT Count(*) FROM DBA_TABLES;

чтобы получить количество таблиц.

8 голосов
/ 27 декабря 2013

Выберите количество (*) ОТ всех таблиц, где владелец = 'имя_схемы'

2 голосов
/ 11 августа 2015

Если вам нужен список владельцев и количество таблиц на владельца, попробуйте:

    SELECT distinct owner, count(table_name) FROM dba_tables GROUP BY owner;
2 голосов
/ 23 мая 2012

Эти документы описывают представления словаря данных:

all_tables: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4473.htm#REFRN26286

user_tables: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091

dba_tables: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4155.htm#i1627762

Youможет выполнять запросы к этим представлениям, чтобы подсчитать, что вам нужно.

Чтобы добавить что-то еще к ответу @Anurag Thakre:

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

SELECT COUNT(*),tablespace_name  FROM USER_TABLES group by tablespace_name;

Или владельцам таблиц:

SELECT COUNT(*), owner  FROM ALL_TABLES group by owner;

Само табличное пространство не идентифицирует уникального владельца объекта.Несколько пользователей могут создавать объекты в одном и том же табличном пространстве, а один пользователь может создавать объекты в разных табличных пространствах.Обычной практикой является разделение таблиц и индексов в разных табличных пространствах.

1 голос
/ 17 ноября 2018

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

SELECT Count(*) FROM DBA_TABLES where OWNER like 'PART_OF_NAME%';
1 голос
/ 04 мая 2016

Пожалуйста, найдите ниже - это самый простой, который я использую:

select owner, count(*) from dba_tables group by owner;
0 голосов
/ 24 января 2016
REM setting current_schema is required as the 2nd query depends on the current user referred in the session

ALTER SESSION SET CURRENT_SCHEMA=TABLE_OWNER;

SELECT table_name,
         TO_NUMBER (
            EXTRACTVALUE (
               xmltype (
                  DBMS_XMLGEN.getxml ('select count(*) c from ' || table_name)),
               '/ROWSET/ROW/C'))
            COUNT
    FROM dba_tables
   WHERE owner = 'TABLE_OWNER'
ORDER BY COUNT DESC;
0 голосов
/ 30 июня 2014

ЭТОТ ЗАПРОС НАЙДЕТ ВСЕ СЧЕТА ОБЪЕКТОВ В КОНКРЕТНОЙ СХЕМЕ

select owner, object_type, count(*) from dba_objects where owner='owner_name' group by owner, object_type order by 3 desc;
0 голосов
/ 11 декабря 2013
select COUNT(*) from ALL_ALL_TABLES where OWNER='<Database-name>';

.....

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