Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2022-12-20 | 21 |
5.00
из
|
Заказать работу |
|
|
Синтаксис создания триггерной процедуры:
CREATE [OR REPLACE] TRIGGER имя _триггерной процедуры
{BEFORE | AFTER | INSTEAD OF} класс _события
ON
{NESTED TABLE столбец_вложенной_таблицы OF представление
| базовая_или_выводимая_ таблица
| DATABASE
| [ схема. ] SCHEMA
}
[ именующая_фраза ]
[FOR EACH ROW]
[WHEN (условие_срабатывания)]
{
[DECLARE
[PRAGMA AUTONOMOUS_TRANSACTION;]
раздел других объявлений ]
BEGIN
раздел кода
[EXCEPTION
раздел обработки исключительных ситуаций ]
END [ имя_триггерной процедуры ]
|
CALL имя_процедуры [(список_параметров)]
};
Классы событий для триггерных процедур перечислены ниже:
Группа событий | Категория | Описание |
INSERT | DML | Срабатывает при постановке строки в таблицу |
UPDATE | DML | Срабатывает при модификации строки в таблице. При наличии уточнения OF (UPDATE OF список_полей) может срабатывать только при модификации определенных столбцов |
DELETE | DML | Срабатывает при удалении строк из таблицы. Не срабатывает при TRUNCATE |
CREATE(8.1) | DDL | Срабатывает при выполнении операции CREATE создания объектов, попадающих в перечень в ALL_OBJECTS. Может создаваться на уровне отдельной схемы или всей БД |
ALTER(8.1) | DDL | Срабатывает при выполнении операции ALTER изменения свойств объектов, попадающих в перечень в ALL_OBJECTS. Может создаваться на уровне отдельной схемы или всей БД |
DROP(8.1) | DDL | Срабатывает при выполнении операции DROP удаления объектов, попадающих в перечень в ALL_OBJECTS. Может создаваться на уровне отдельной схемы или всей БД |
ANALYZE(9) ASSOCIATE STATISTICS(9) AUDIT(9) COMMENT(9) DISASSOCIATE STATISTICS(9) GRANT(9) NOAUDIT(9) RENAME(9) REVOKE(9) TRUNCATE(9) | DDL | Прочие группы DDL-событий |
DDL(9) | DDL | Обобщенное название для всех DDL-событий |
SERVERERROR(8.1) | База данных | Срабатывает при фиксации системой серверной ошибки. Может быть только типа AFTER |
LOGON(8.1) | База данных | Срабатывает при возникновении нового сеанса работы пользователя (программы). Может быть только типа AFTER |
LOGOFF(8.1) | База данных | Срабатывает при окончании работы сеанса. Может быть только типа BEFORE. Не срабатывает при разрыве сеанса. |
STARTUP(8.1) | База данных | Срабатывает при открытии БД. Может быть только типа AFTER |
SHUTDOWN(8.1) | База данных | Срабатывает при закрытии БД. Может быть только типа BEFORE. Не срабатывает при SHUTDOWN ABORT. |
SUSPEND(9) | База данных | Срабатывает при приостановке транзакции вследствие нехватки доступной дисковой памяти при добавлении данных (исчерпана дисковая память, достигнут максимум числа экстентов в сегменте, исчерпана квота на табличное пространство). Если причину устранить, операцию DML можно продолжить. |
(8.1) Cуществуют, начиная с версии 8.1
|
(9) Cуществуют, начиная с версии 9
Типы AFTER и BEFORE.
именующая_фраза (REFERENCING) задает собственное имя для указания в теле процедуры новых и старых псевдостолбцов при выполнении операций INSERT, DELETE и UPDATE (DML-триггерные процедуры). На столбцы типа LONG и LONG RAW такое именование не распространяется. Присваивание распространяется только на индивидуальные столбцы (и не на всю запись). Для INSERT старые значения, а для DELETE новые, всегда NULL.
Указание FOR EACH ROW (DML-триггерные процедуры).
WHEN указывает на дополнительное условие, необходимое для срабатывания триггерной процедуры (DML-триггерные процедуры).
Пример создания триггерной процедуры:
CREATE OR REPLACE TRIGGER set_hiredate
BEFORE INSERT ON emp
REFERENCING NEW AS inserted_employee
FOR EACH ROW
BEGIN:inserted_employee.hiredate:= SYSDATE; END set_hiredate;
/
Примечание. Работа этой процедуры не эквивалентна следующему изменению описания таблицы EMP:
ALTER TABLE emp MODIFY (hiredate DATE DEFAULT SYSDATE);
Упражнение: проверить это.
Пример того, как можно переделать предыдущую процедуру для имитации DEFAULT SYSDATE в поле HIREDATE:
CREATE OR REPLACE TRIGGER set_hiredate
BEFORE INSERT ON emp
REFERENCING NEW AS inserted_employee
FOR EACH ROW
WHEN (inserted_employee.hiredate IS NULL)
|
BEGIN:inserted_employee.hiredate:= SYSDATE; END set_hiredate;
/
Фраза CALL может заменять тело триггерной процедуры в виде блока PL/SQL вызовом обычной процедуры на PL/SQL или Java, например:
CREATE TRIGGER scott.salary_check
BEFORE INSERT OR UPDATE OF sal, job ON scott.emp
FOR EACH ROW
WHEN (NEW.job <> 'PRESIDENT')
CALL check_sal (:NEW.job,:NEW.sal,:NEW.name);
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!