Написать триггер базы данныхMutating Таблица ошибки в триггере уровня строки
- Halt сделку между временем 6 вечера до 10 утра на столе
- Дайте соответствующее сообщение, если запись превышать более чем на 10
- Удалить данные старше 2 месяцев с понедельника по субботу и дату не должно быть 1-го числа месяца. (т.е. оставить воскресенье & 1 МЕСЯЦА данных старше 2 месяцев)
Я попробовал этот код,
CREATE OR REPLACE TRIGGER EMP_INFO_BFT BEFORE
INSERT OR DELETE OR UPDATE ON EMP_INFO
FOR EACH ROW
DECLARE l_TIME NUMBER(10);
l_RECORD NUMBER;
BEGIN
l_TIME:=TO_CHAR(SYSDATE,'HH24');
IF l_TIME NOT BETWEEN 18 AND 10 THEN
RAISE_APPLICATION_ERROR(-20003,'TIME ALREADY OVER.....TRANSACTION NOT ALLOWED NOW');
END IF;
DELETE
FROM EMP_INFO
WHERE TRUNC (HIRE_DATE) < ADD_MONTHS (TRUNC (SYSDATE), -2)
AND TO_CHAR (TRUNC (HIRE_DATE), 'DY') != 'SUN'
AND TO_CHAR (TRUNC (HIRE_DATE), 'DD') != '01';
SELECT COUNT(*) INTO l_RECORD FROM EMP_INFO;
IF l_RECORD>=10 THEN
RAISE_APPLICATION_ERROR(-20005,'10 RECORD ALLOWED IN EMP_INFO TABLE');
END IF;
END;
Я получил мутирует ошибку при вставке.