Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

error 1064 en mysql

Estas en el tema de error 1064 en mysql en el foro de Mysql en Foros del Web. hola amigos, al momento de ejecutar un procedimiento almacenado me muestra este error #1064 - You have an error in your SQL syntax; check the ...
  #1 (permalink)  
Antiguo 12/11/2008, 11:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 722
Antigüedad: 18 años, 8 meses
Puntos: 2
Pregunta error 1064 en mysql

hola amigos, al momento de ejecutar un procedimiento almacenado

me muestra este error
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5


no se que signifique, y lo peor es que muestra el error con cualquier procedimiento
porfavor prestenme un poco de su tiempo para solucionar este problema
  #2 (permalink)  
Antiguo 12/11/2008, 11:58
 
Fecha de Ingreso: agosto-2005
Mensajes: 722
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: error 1064 en mysql

este es el precedimiento que intente correr
CREATE PROCEDURE procedure1( IN parameter1 INTEGER ) BEGIN DECLARE variable1CHAR( 10 ) ;
  #3 (permalink)  
Antiguo 12/11/2008, 12:55
Avatar de 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: error 1064 en mysql

Si esa sola línea contiene el SP entonces no sólo está incompleto, sino que además no realiza nada...

El SP se declara con el siguiente esquema de script, que debe ser cargado y ejecutado en consola o en una interfase, en modo consola:

Código sql:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS NombreProc$$
  3. CREATE PROCEDURE NombreProc(ModoEntrada nombreVariable TipoDato)
  4. BEGIN
  5.  
  6. DeclaracionesVariables;
  7. DeclaracionesCursores;
  8. DeclaracionesHandlers;
  9.  
  10. CuerpoDelProcedure;
  11. ...
  12. ...
  13. ...
  14.  
  15. END$$
  16.  
  17. DELIMITER ;
Donde:
ModoEntrada: IN / OUT / INOUT.
TipoDato: INT / CHAR/ VARCHAR / TIME / DATE / DATETIME / REAL / FLOAT / etc., etc.
DeclaracionesVariables: Todas las variables usadas en el cuerpo del store procedure.
DeclaracionesCursores: Cursores de lectura secuencial para una sentencia SELECT indicada.
DeclaracionesHandlers: Handlers de eventos de tabla, tales como NOT FOUND, EOF, etc.
CuerpoDelProcedure: Código de las tareas realizadas por el procedure.

DELIMITER: Es una sentencia destinada a cambiar momentáneamente el terminador de sentencias para que el script se peuda cargar en una sola ejecución y no se "corte" al encontrar los ";" finales intermedios.
Si el script se carga desde una aplicación, no es necesario usar el DELIMITER, sino cargar en un sólo bloque el script desde el CREATE... hasta el ...END
Nota:
Hacer un SP para ejecutar una sola sentencia SELECT / INSERT / DELETE / UPDATE / DROP es un desperdicio de recursos de la base de datos. Esos casos se resuelven por código en la aplicación, de forma mucho más sencilla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:11.