Te falta el delimitador definición antes y después de la definición del proceso almacenado:
Dado que la definición y el cuerpo del proceso almacenado estaban bien, el control de sintaxis le dio el visto bueno, pero el código no se ejecutaría correctamente en su cliente.
Utilice el siguiente esqueleto para definir un procedimiento almacenado:
delimiter //
create procedure ...
...
end
//
delimiter ;