Su problema es que la declaración que arroja el error en realidad está fuera de su procedimiento y, por lo tanto, - fuera del alcance de sus parámetros. La solución es envolver todo el routine_body del procedimiento en un BEGIN ... END
estructura para crear una Compound Statement
.
CREATE PROCEDURE
espera una "sentencia de rutina SQL válida " en su cuerpo. El uso de la sintaxis de declaraciones compuestas permite agrupar varias declaraciones en un solo bloque de código y cumplir con este requisito.