Базы данных Oracle - статьи

         

Дополнительные замечания по технологии


Приведенные примеры перекрестных триггерных процедур были намерено упрощены. В жизни в них следовало бы предусмотреть реакцию на указание в качестве нового значения отсутствующей должности. Предположим, что в старом приложении подобная обработка не программировалась, то есть в БД добавлялась ровно то название должности, которае было указано в INSERT/UPDATE. Тогда для сохранения поведения старой реакции приложения следовало бы на возникающую в SELECT ... INTO ... FROM job ошибку NO_DATA_FOUND среагировать добавлением новой записи в таблицу JOB. Придется решить технический вопрос о поставке значений в JOBID; это может потребовать употребления генератора последовательности (sequence) и других усложнений.

При решении перейти на новую редакцию приложения перекрестные триггерные процедуры и редакционные представления данных следует удалить, а освободившееся имя EMP вернуть основной таблице: CONNECT yard/pass ALTER SESSION SET EDITION = ora$base; DROP VIEW emp;

ALTER SESSION SET EDITION = app_release_1; DROP VIEW emp; DROP TRIGGER cross_reversed_job; DROP TRIGGER cross_forward_job;

ALTER TABLE emp_tab RENAME TO emp; ALTER TABLE emp DROP COLUMN job;

CONNECT / AS SYSDBA ALTER DATABASE DEFAULT EDITION = app_release_1;



Содержание раздела