Количество подсчетов в Oracle

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

select owner, count(*) from dba_tables

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

Ответы

Ответ 1

Да, ваш запрос будет работать, просто немного измените его. Посмотрите здесь для refrence: 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;

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

Ответ 3

Выберите count (*) FROM all_tables, где owner = 'schema_name'

Ответ 4

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

    SELECT distinct owner, count(table_name) FROM dba_tables GROUP BY owner;

Ответ 5

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

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

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

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

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

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

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

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

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

Ответ 6

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

select owner, count(*) from dba_tables group by owner;

Ответ 7

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;

Ответ 8

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

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

Ответ 9

select COUNT(*) from ALL_ALL_TABLES where OWNER='<Database-name>';

.....

Ответ 10

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

select owner, object_type, count(*) from dba_objects where owner='owner_name' group by owner, object_type order by 3 desc;