Я пытаюсь вызвать следующую хранимую процедуру ...
CREATE OR REPLACE PROCEDURE PRC_EXAMEN_SUELDO(fecha_hoy varchar2)
AS
BEGIN
IF fecha_hoy= 'WEDNESDAY' then
RAISE_APPLICATION_ERROR(-20777, 'Los ' || fecha_hoy ||' no se puede cambiar el sueldo');
END IF;
END;
... внутри этого триггера:
CREATE OR REPLACE TRIGGER TRG_EXAMEN_SUELDO
BEFORE UPDATE OF SALARY ON EMPLOYEES
FOR EACH ROW
DECLARE
HOY VARCHAR(50);
BEGIN
HOY:= TO_CHAR (SYSDATE, 'DAY');
execute PRC_EXAMEN_SUELDO (HOY);
END;
Но выдается следующая ошибка:
LINE / COL ERROR
--------- -------------------------------------------------------------
5/13 PLS-00103: Обнаружен символ "PRC_EXAMEN_SUELDO"при ожидании одного из следующих действий:
: =.(@%; немедленный
Символ «: =» был заменен на «PRC_EXAMEN_SUELDO» для продолжения.
Ошибки: проверьте журнал компилятора
Я использую схему HR Oracle.
Цель процедуры состоит в том, чтобы проверить, равен ли отправленный день дню sysdate. Если это так, он активирует ошибку.
Предположительно, после компиляции этой строки кода:
set serveroutput on;
update employees set salary = salary + 100 where employee_id = 100;
Триггер должен проверить, может ли изменение быть выполнено в соответствии с sysdate. Иначе, он выдает указанную ошибку.
Хранимая процедура работает правильно, но триггер не 'т. Любая помощь будет оценена.