Я пытаюсь запустить триггер oracle.Oracle Trigger with If Statement AND OR conditions
Вот код, который я до сих пор:
CREATE OR REPLACE TRIGGER CHK_SALES_JOB
BEFORE INSERT OR UPDATE OF JOB_ID ON EMPLOYEES
FOR EACH ROW
BEGIN
IF :old.department_id = 80 AND (:new.job_id != 'SA_REP' OR :new.job_id != 'SA_MAN') THEN
RAISE_APPLICATION_ERROR(-20001, 'Sales Department can only have SA_MAN or SA_REP');
END IF;
END;
Вот оператор обновления:
UPDATE employees
SET job_id = 'SA_REP'
WHERE employee_id = 179;
Проблема, с которой я столкнулся в настоящее время является то, что с если утверждение, это будет только работают вот так:
IF :old.department_id = 80 AND :new.job_id != 'SA_REP' THEN
RAISE_APPLICATION_ERROR(-20001, 'Sales Department can only have SA_MAN or SA_REP');
END IF;
Если у меня есть условие ИЛИ в инструкции If, код никогда не будет Работа. Он скомпилирует триггер без проблем, но когда я попытаюсь обновить таблицу сотрудников, он будет постоянно отображать RAISE_APPLICATION_ERROR.
В любом случае, я могу это исправить?
Заранее спасибо
Большое вам спасибо за вашу помощь. НЕ работает. – fireboy0526
Возможно, было проще просто заменить 'или'' и '. –
Почему '' или 'не работает? –