Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/05/2014, 12:54
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: guardar un dato de una tabla en una variable

Primera regla básica de sintaxis de stored proceudres: Respeta la sintaxis de cada DBMS.
Segunda regla: Cada DBMS tiene su sintaxis para su propio lenguaje procedural. No existe un estandar, por lo que cada uno tiene reglas específicas.

Consejo primario y principal: Usa una herramienta nativa para escribir SP, tal que tenga un corrector sintáctico incorporado. Te ahorrarás muchísimos problemas, retrasos y dolores de cabeza por nimiedades.
En el caso de MySQL existe una: MySQL Workbench.
Úsala.

Además, te recomiendo que no uses cambios de delimitador donde el nuevo delimitador sea algún signo de uso interno. ¿Por qué crees que en los manuales aparece el "$$"? Pues simplemente porque ese seguro que no generará problemas.

Finalmente: Una asignación de valores a una variable, fuera de un SELECT INTO..., obligatoriamente requiere usar un comando SET.
Siempre.

Código MySQL:
Ver original
  1. delimiter $$
  2. CREATE PROCEDURE funcionX(IN param INT)
  3. SET param=0;
  4. SET param=(SELECT total FROM cliente WHERE id_cliente=4);
  5.  
  6. IF param>3000 THEN
  7. SELECT "el valor es apto";
  8. SELECT "el valor no es apto";
  9. END$$
  10. 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)