Имеет объявляет, что дает непредвиденные ошибки, которые пытались найти решение. Как и странно, как и предыдущие процедуры, которые используют тот же синтаксис, но не выдают никаких ошибок
Это для процедуры, которая использует курсоры для извлечения информации из таблицы, а затем вставляет ее в другую таблицу, что делается для того, чтобы информация в ней могла использоваться для вычисления общей суммы, которая передается вместе с некоторыми необходимые значения
BEGIN
DECLARE fin INT DEFAULT FALSE;
DECLARE pol VARCHAR(30) default '';
DECLARE total_accrued decimal(20,2) DEFAULT '0.00';
DECLARE total_paid decimal(20,2) DEFAULT '0';
DECLARE TOTAL DECIMAL(20,2) DEFAULT '0.00';
DECLARE user_pol varchar(45) default '';
DECLARE c3 CURSOr FOR SELECT total_accrued FROM fn_policy_mast;
DECLARE c4 CURSOR FOr SELECT total_amount_paid FROM fn_policy_mast;
DECLARE c2 CURSOR FOR SELECt policy_number FROM fn_policy_mast;
DECLARE c1 CURSOr FOR SELECT balance FROM fn_policy_mast;
-- DECLARE d_policy CURSOR FOR SELECT DISTINCT cod_policy FROM fn_policy_mast;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fin = TRUE;
OPEN c1;
OPEN c2;
OPEN c3;
OPEN c4;
-- OPEN d_policy;
read_loop: LOOP
FETCH c3 INTO total_accrued;
FETCH c4 INTO total_paid;
FETCH c2 INTO pol;
set total = 0;
-- FETCH d_policy INTO user_pol;
-- IF user_pol = pol then
set total_accrued = (SELECT SUM(monthly_premium) FROM col_trans_log WHERE policy_number LIKE pol);
set total_paid = (SELECT SUM(transaction_amount) FROM col_Trans_log WHERE policy_number LIKE pol);
set total = total_paid - total_accrued;
-- END IF;
-- set TOTAL = (total_accrued-total_paid);
UPDATE fn_policy_mast set balance = TOTAL WHERE policy_number like pol;
IF fin=TRUE THEN
LEAVE read_loop;
END IF;
-- INSERT STATEMENTS HERE
-- set total = 0;
END LOOP;
select * FROM fn_policy_mast;
close c1;
close c2;
CLOSE c3;
CLOSE c4;
END//
DELIMITER ;````
Expected result to run, accepting the declares, actual experience is thaere is some form of syntax wrong, as it does not properly recognise the declare statements
This is the error message : Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5