Ошибка кажется довольно очевидной, но здесь есть уточнение.
Ваш курсор определен как:
SELECT order_id,
(CASE WHEN order_status='refunded' THEN total_order*0.25
WHEN order_status='completed' THEN total_order* 0
WHEN order_status='cancelled' THEN total_order*0
END)
FROM orders;
Возвращает ДВА столбца - order_id
и результат выражения.
Ваш FETCH
определен как:
FETCH c2 INTO ref_value;
Попытка поместить результаты в ОДИН столбец.
Либо измените определение курсора, чтобы удалить order_id
, либо измените FETCH
, чтобы включить два параметра.
Затем, после этого запуска, вы, вероятно, получите ошибку, потому что у вашего курсора нет параметров, но вы пытаетесь передать один из них.