понедельник, 22 августа 2011 г.

Зависимость объектов в Oracle

Все мы как-то связаны между собой, а потому зависимы. Объект 'мужик' зависит от объекта 'смелость'. Одна тапка плохо смотрится без другой. Хоккей без льда уже не хоккей. Объекты СУБД Oracle не исключение.

Если определение объекта A ссылается (references to) на объект B, тогда A зависимый (depends on), т.е. dependent объект по отношению к B, а B есть ссылочный (упомянаемый, referenced) объект по отношению к A. Automatic dependency management яростно следит за тем, чтобы объект A использовал последнюю версию B, от того нет нужды всякий раз перекомпилировать A, после изменений в B.

Оооднааажды появилась задача выяснить, какие процедуры работают с таблицами table1 и table2. Сначала я посмотрел, в какой схеме находятся такие таблицы:

select owner from all_tables at where at.table_name =  UPPER('table1').

Оказалось, что в схеме schema1.

А потом в помощь команда get_dependency:

begin
dbms_utility.get_dependency('table', 'schema1','table1');
end;
 
Таким образом, можно увидеть зависимость procedure bodies от этой таблицы.
Важно заметить, что в случае, если с таблицей работает dynamic sql, то зависимость естественно не фиксируется средствами Oracle.


Комментариев нет:

Отправить комментарий