SQL command not properly ended
У меня есть запрос на добавление данных, который запускает тригер, который проверяет одно условие, и только после этого добавляет в таблицу покупок. Так же он ругается на строчки инициализаций total_rasr и id_buyer invalid number, хотя там типы одинаковые что в таблице, что в тригере. И самый большой вопрос, этот тригер работал, но в один момент перестал и выдает эти ошибки.
INSERT INTO PAYMENT (ID, ADDRESS, DATE_PAYMENT, PAYMENT_METHOD_ID, EMPLOYEE_ID, BUYER_ID)
VALUES (Key('PAYMENT'), 'Москва', TO_DATE('2002-08-23', 'YYYY-MM-DD'),'005!00002','1','002!00005');
Тригер
create or replace TRIGGER checking_the_availability_work
BEFORE INSERT
ON PAYMENT
FOR EACH ROW
DECLARE
rasr_is_possible boolean := true;
total_rasr VARCHAR(10);
id_buyer VARCHAR(10);
AVAILABILITY_OF_WORK VARCHAR(5);
xSQL VARCHAR(100);
BEGIN
total_rasr := :NEW.PAYMENT_METHOD_ID;
id_buyer := :NEW.BUYER_ID;
IF total_rasr = '005!00002' THEN
xSQL := 'select AVAILABILITY_OF_WORK FROM BUYER WHERE ID =' || id_buyer;
execute immediate xSQL into AVAILABILITY_OF_WORK;
IF AVAILABILITY_OF_WORK = 'Нет' THEN
rasr_is_possible := false;
END IF;
END IF;
if not rasr_is_possible THEN
Raise_application_error(-20201, 'У вас нет места работы!');
end if;
END;