Имя раздела как переменная не работает в хранимой процедуре

#mysql

Вопрос:

#Создание имени раздела из входных данных с помощью приведенной ниже инструкции

 select CONCAT('y',v_salary_year,'m',LPAD(p_salary_month,2,0)) INTO v_partition from dual;
 

получение ожидаемого результата, такого как: y2021m09

используя приведенное ниже утверждение

 select v_partition from dual;
 

#Выход y2021m09

Когда я использую v_partition переменную в разделе в качестве имени раздела, как показано ниже

 DECLARE attendance_cursor CURSOR FOR  SELECT flag , COUNT(*) FROM attn_attendances  PARTITION(v_partition) GROUP BY flag;
 

Это дает ошибку ниже:

MySQL сказал: #1735 — Неизвестный раздел «v_partition» в таблице «attn_attendances»

но когда я использую имя раздела в качестве значения жесткого кода, как показано ниже, это дает правильный результат.

 DECLARE attendance_cursor CURSOR FOR  SELECT flag , COUNT(*) FROM attn_attendances  PARTITION(y2021m09) GROUP BY flag;
 

Пожалуйста, помогите мне решить эту проблему. заранее спасибо

Комментарии:

1. Вы должны использовать динамический SQL (см. PREPARE / EXECUTE инструкции).