Читать в оригинале

<< Предыдущая Оглавление Следующая >>


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

Oracle поддерживает исчерпывающий словарь метаданных. Этот сло­варь описывает структуру таблиц, последовательностей, представлений, индексов, ограничений, хранимых процедур и многое другое. Он также содержит исходные тексты процедур, функций и триггеров.

В таблице DICT словаря метаданных содержатся данные, описываю­щие сам словарь. Можно запрашивать данные из этой таблицы, чтобы узнать больше о содержимом словаря данных, но нужно иметь в виду, что она имеет большие размеры. Например, если запросить имена всех таблиц словаря данных, будет возвращено более 800 строк.

Предположим, нужно узнать, какие таблицы с информацией о поль­зовательских и системных таблицах имеются в словаре данных. В этом может помочь следующий запрос:

SELECT Table_Name, Contents
FROM DICT
WHERE Table_Name LIKE (' %TABLES%');

Будет возвращено около двадцати пяти строк. Одна из таблиц будет на­зываться USER_TABLES. Чтобы увидеть столбцы этой таблицы, нужно ввести:

DESC USER_TABLES;

Можно использовать эту стратегию для получения из словаря мета­данных информации об интересующих объектах и структурах. В табл. 4.1 перечислены многие из представлений и указано их назначение. Таблицы USER_SOURCE и USER_TRIGGERS полезны, когда требуется узнать, исходные тексты каких процедур и триггеров хранятся в настоящий мо­мент в базе данных.

Таблица 4.1. Метаданные в СУБД Oracle

Имя таблицы

Содержимое

DICT

Метаданные, описывающие словарь данных

USER_CATALOG

Список таблиц, представлений, последовательно­стей и других структур, принадлежащих пользо­вателю

USER_TABLES

Структуры таблиц пользователя

USER_TAB_COLUMNS

Потомок таблицы USER TABLES. Содержит дан­ные о столбцах таблиц. Синонимом является COLS

USER_VIEW

Пользовательские представления

USER_ CONSTRAINTS

Пользовательские ограничения

USER_CONS_COLUMNS

Потомок таблицы USER_CONSTRAINTS. Содер­жит столбцы, на которые наложены ограничения

USER_TRIGGERS

Метаданные, описывающие триггеры. Есть смысл запрашивать столбцы Trigger Name, Trigger Type и Trigger Event. Предупреждение: Trigger Body в действительности не содержит исходного кода триггера

USER_SOURCE

Исходные тексты. Например, для получения тек­ста процедуры MYTRIGGER: SELECT Text FROM USER_SOURCE WHERE Name = 'MYTRIGGER' AND Type = 'PROCEDURE'



<< Предыдущая Оглавление Следующая >>