#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
инструкции).