Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_BD_Full.docx
Скачиваний:
39
Добавлен:
13.09.2019
Размер:
945.28 Кб
Скачать
    1. Пример триггера.

CREATE TRIGGER emp_permit_changes

BEFORE

DELETE OR INSERT OR UPDATE

ON employee

DECLARE

dummy INTEGER;

BEGIN

/* Если сегодня суббота или воскресенье, то ошибка. */

IF (TO_CHAR(SYSDATE, 'DY') = 'SAT' OR

TO_CHAR(SYSDATE, 'DY') = 'SUN')

THEN raise_application_error( -20501,

'Можно изменять таблицу employee только в рабочие дни');

END IF;

/* Если праздник, то тоже ошибка */

SELECT COUNT(*)

INTO dummy

FROM company_holidays

WHERE day = TRUNC(SYSDATE);

IF dummy > 0

THEN raise_application_error( -20501,

'Нельзя изменять таблицу employee по праздникам');

END IF;

/* Если текущее время меньше 8:00 часов утра или 5:00 часов вечера,

то ошибка */

IF (TO_CHAR(SYSDATE, 'HH24') < 8 OR

TO_CHAR(SYSDATE, 'HH24') >= 17)

THEN raise_application_error( -20502,

'Нельзя изменять таблицу employee в нерабочие часы');

END IF;

END;

103

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