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;

Ответы (0 шт):