Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/10/2008, 06:11
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Sintaxis CREATE PROCEDURE (con TEMPORARY TABLE)

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 original
  1. DELIMITER $$
  2.  
  3. CREATE PROCEDURE spActClientes(
  4. IN telefonoV CHAR(9) ,
  5. IN nombreV VARCHAR(150) ,
  6. IN direccionV VARCHAR(500) ,
  7. IN poblacionV VARCHAR(100) ,
  8. IN postalV SMALLINT(8) UNSIGNED,
  9. IN email VARCHAR(200) ,
  10. IN nPucherosV SMALLINT(6) ,
  11. IN valorPucherosV DECIMAL(10, 2) ,
  12. IN bloqueaV tinyint(1) ,
  13. IN memoV VARCHAR(2000)
  14. )
  15. BEGIN
  16. CREATE TEMPORARY TABLE tTemp(
  17. `telefonoC` CHAR(9) ,
  18. `nombreC` VARCHAR(150) ,
  19. `direccionC` VARCHAR(500) ,
  20. `poblacionC` VARCHAR(100) ,
  21. `postalC` SMALLINT(8) UNSIGNED,
  22. `email` VARCHAR(200) ,
  23. `nPucheros` SMALLINT(6) ,
  24. `valorPucheros` DECIMAL(10, 2) ,
  25. `bloqueaC` tinyint(1) ,
  26. `memo` VARCHAR(2000)
  27. );
  28.  
  29. INSERT INTO tTempo
  30. VALUES (telefonoV, nombreV, direccionV, poblacionV,
  31. postalV, emailV, nPucherosV, valorPucherosV, bloqueaV, memoV);
  32. END$$
  33.  
  34. DELIMITER ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)