El error no está en la línea 25. Es allí donde comienza el problema, pero no donde está.
La cosa tiene tres problemas:
1. No veo la línea de cambio de delimitador, por lo que si estás intentando correr el script sin ellas (la de inicio y la de fin), te dará siempre error porque cortará la carga en la línea en cuestión.
2. No se debe usar los nombres de campos como nombres de variables entrantes. Genera errores de almacenamiento. SQL no es un lenguaje de programación orientado a objetos, así que una
variable llamada `poblacionC` y un
campo `poblacionC` son la misma cosa para el SQL.
3. La sentencia de inserción está mal escrita. Los valores van encerrados entre paréntesis, como también lo van los campos listados en el nombre de la tabla en que se insertan,
si no se van a insertar todos.
La s,intaxis correcta para correrlo en consola quedaría mas o menos así:
Código SQL:
Ver originalDELIMITER $$
CREATE PROCEDURE spActClientes(
IN telefonoV CHAR(9) ,
IN nombreV VARCHAR(150) ,
IN direccionV VARCHAR(500) ,
IN poblacionV VARCHAR(100) ,
IN postalV SMALLINT(8) UNSIGNED,
IN email VARCHAR(200) ,
IN nPucherosV SMALLINT(6) ,
IN valorPucherosV DECIMAL(10, 2) ,
IN bloqueaV tinyint(1) ,
IN memoV VARCHAR(2000)
)
BEGIN
CREATE TEMPORARY TABLE tTemp(
`telefonoC` CHAR(9) ,
`nombreC` VARCHAR(150) ,
`direccionC` VARCHAR(500) ,
`poblacionC` VARCHAR(100) ,
`postalC` SMALLINT(8) UNSIGNED,
`email` VARCHAR(200) ,
`nPucheros` SMALLINT(6) ,
`valorPucheros` DECIMAL(10, 2) ,
`bloqueaC` tinyint(1) ,
`memo` VARCHAR(2000)
);
INSERT INTO tTempo
VALUES (telefonoV, nombreV, direccionV, poblacionV,
postalV, emailV, nPucherosV, valorPucherosV, bloqueaV, memoV);
END$$
DELIMITER ;