Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Oracle Tutorial.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
401.64 Кб
Скачать

Словарь данных.

Объекты Oracle можно смотреть в словаре данных в различных системных вьюшках.

Вьюшки по объектам своей схемы (по объектам пользователя, под которым сейчас залогинен) начинаются с префикса "user_".

Вьюшки по объектам всех схем начинаются с префикса "all_", а в остальном пишутся так же.

Вьюшки по объектам всех схем (с админскими) начинаются с префикса "dba_", а в остальном пишутся так же.

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

При замене "user_" на "all_" во вьюшках добавляется поле OWNER (название схемы).

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

select * from user_tables; -- все таблицы

select * from user_tab_columns where table_name = 'MY_TABLE'; -- Столбцы таблицы MY_TABLE, с порядком следования (column_id), типами данным, размерами. Обратите внимание, что в user_tab_columns также хранятся и столбцы вьюшек.

select * from user_source; -- код функций, процедур, пакетов, триггеров (хранятся построчно с указанием номеров строк)

select * from user_views; -- код вьюшек (тела вьюшек хранятся в поле text типа long)

select * from user_objects; -- все объекты

select * from user_segments; -- занимаемое таблицами и индексами место на диске

select * from user_tablespaces; -- тэйблспейсы (физические пространства для таблиц и индексов)

select * from user_indexes; -- индексы

select * from user_ind_columns; -- столбцы индексов

select * from user_synonyms; -- синонимы (дополнительные имена для объектов)

select * from user_db_links; -- database links

select * from user_constraints; -- констрейнты (о них далее будет глава)

select * from user_tab_partitions; -- партиции

select * from user_tab_subpartitions; -- субпартиции

Бывает, что таблица состоит из нескольких вложенных таблиц одинаковой структуры – партиций. Партиции в свою очередь могут содержать в себе субпартиции, то есть таблицы второго уровня вложенности. Третьего уровня вложенности не бывает. Разделение таблицы на партиции осуществляется согласно значениям определенного поля таблицы (по которому производится партиционирование). Отнесение каждой строки к конкретной партиции может осуществляться по интервалам (by range) или по перечню значений (by list), которые может принимать поле (по которому производится партиционирование). Пример использования партиций: таблица звонков абонентов сотовой сети с партиционированием по дате звонка (by range) и субпартиционированием по коду региона (by list). Предлагается посмотреть в боевой базе на какую-либо партиционированную таблицу и посмотреть на код создания таблицы.

select * from user_dependencies where name = 'PCK_XS'; -- какие объекты используются в объекте(пакете) PCK_XS

select * from user_dependencies where referenced_name = 'ST_CLIENTS'; -- какие объекты используют объект(таблицу) ST_CLIENTS

Взимозависимости объектов можно смотреть в PL/SQL Developer-е, раскрыв в дереве объектов узел с именем интересующего объекта, а затем раскрыв узлы “References” и “Referenced by”.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]