Hola djaevi:
No estoy seguro de que puedas utilizar la función CONCAT para preparar una sentencia. Inténtalo así:
Código:
DROP PROCEDURE IF EXISTS llenarDatos;
DELIMITER $$
CREATE
PROCEDURE llenarDatos(llenar VARCHAR(100))
BEGIN
SET @temp = CONCAT('INSERT INTO tabla VALUES ', llenar);
PREPARE consulta FROM @temp;
EXECUTE consulta;
DEALLOCATE PREPARE consulta;
END$$
DELIMITER ;
Aquí estaría funcionando el SP:
Código MySQL:
Ver original+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
+------+-------------+
mysql
> CALL llenarDatos
("(4, 'cuatro'), (5, 'cinco')");Query OK, 0 rows affected (0.04 sec)
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
| 4 | cuatro |
| 5 | cinco |
+------+-------------+
Recuerda siempre eliminar las sentencias preparadas con
DEALLOCATE PREPARE
Haz la prueba y nos comentas.
Saludos
Leo.