Табличное пространство SYSTEM в базе данных Oracle - PullRequest
0 голосов
/ 07 октября 2018

Я не знаю, как получить все таблицы из табличного пространства SYSTEM в базе данных oracle.

Я выполняю следующую команду:

select * 
from dba_tables 
where tablespace_name='SYSTEM'; 

Однако такие таблицы, как all_users или ALL_TABLESне перечислены в этом выводе (я читал, что эти таблицы взяты из табличного пространства SYSTEM здесь: https://www.techonthenet.com/oracle/sys_tables/index.php).

Что я делаю не так? Это то, что я понимаю: SYSTEM - это табличное пространство, которое содержит метаданные о базе данныхинформация, поэтому у него есть несколько таблиц, таких как "all_tables".

Пожалуйста, исправьте меня как можно больше, если я ошибаюсь.

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

ALL_USERS и ALL_TABLES являются представлениями, а не таблицами, и поэтому они отображаются в представлении ALL_VIEWS.Следующие запросы могут быть полезны для вас:

SELECT *
  FROM ALL_TABLES
  WHERE TABLESPACE_NAME = 'SYSTEM';

SELECT OWNER, VIEW_NAME
  FROM ALL_VIEWS
  WHERE VIEW_NAME IN ('ALL_USERS', 'ALL_TABLES')

SELECT OWNER, TABLE_NAME
  FROM ALL_TABLES
  WHERE TABLE_NAME IN ('ALL_USERS', 'ALL_TABLES')

См. Это dbfiddle

0 голосов
/ 07 октября 2018

Tablespace в терминах Oracle - это физическое место или место в памяти для хранения данных.В своем вопросе вы имеете в виду schemas.

По большей части словарь данных содержит представления, а не таблицы.Вы можете найти их, запросив all_views вместо all_tables.Поскольку они являются динамическими представлениями и не хранят данные, табличное пространство отсутствует.Вместо этого запросите владельцев схемы SYS и 'SYSTEM`.

SELECT *
  FROM all_views
 WHERE owner IN ('SYS', 'SYSTEM')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...