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

[SOLUCIONADO] ¿Por qué me da fallo este cursor?

Estas en el tema de ¿Por qué me da fallo este cursor? en el foro de Mysql en Foros del Web. Hola, buenas a todos, me estoy volviendo loco con este cursor... me da este fallo: #1064 - You have an error in your SQL syntax; ...
  #1 (permalink)  
Antiguo 26/09/2011, 03:55
 
Fecha de Ingreso: febrero-2007
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
¿Por qué me da fallo este cursor?

Hola, buenas a todos, me estoy volviendo loco con este cursor... me da este fallo:
#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 'DECLARE cursor_ediciones CURSOR FOR SELECT id_edicion FROM EDICIONES_TAB WHERE i...'




Código:
DELIMITER $$

DROP PROCEDURE IF EXISTS `OLEMANIA`.`insertar_historietas_en_vinculaciones`$$
CREATE PROCEDURE `OLEMANIA`.`insertar_historietas_en_vinculaciones` (IN valor_historia INT(6), IN valor_num INT(3), IN valor_orden VARCHAR(4))
BEGIN

INSERT INTO VINC_SENCILLA_TAB (id_historia, id_num, orden_en_ole) 
VALUES (valor_historia, valor_num, valor_orden);
SET @variable := LAST_INSERT_ID();

DECLARE sin_registros INT DEFAULT 0;
DECLARE cursor_ediciones CURSOR FOR SELECT id_edicion FROM EDICIONES_TAB WHERE id_numero = valor_num;
DECLARE CONTINUE HANDLER ya_no_hay FOR NOT FOUND SET sin_registros=1;

OPEN cursor_ediciones;

REPEAT
FETCH cursor_ediciones INTO valor_encontrado;
INSERT INTO id_vs, id_e, esta VALUES (@variable, valor_encontrado, '??');
UNTIL ya_no_hay END REPEAT;

CLOSE cursor_ediciones;

END$$

DELIMITER ;
Espero puedan ayudarme, no sé que estoy haciendo mal... Uso MYSQL 5.1.49
  #2 (permalink)  
Antiguo 26/09/2011, 05:56
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 9 años, 2 meses
Puntos: 91
Respuesta: ¿Por qué me da fallo este cursor?

Cita:
DECLARE puede usarse sólo dentro de comandos compuestos BEGIN ... END y deben ser su inicio, antes de cualquier otro comando.
Eso lo saqué de la documentación oficial. saludos.
  #3 (permalink)  
Antiguo 26/09/2011, 06:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: ¿Por qué me da fallo este cursor?

Ribon, es usted un solete de bueno.
Muchísimas gracias.
Ahora ya veo por que muchas cosas no me funcionaban, me faltaba esa parte de la "teoría". Jejeje
Mil Gracias.
Le doy Karma.
Chiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iii
  #4 (permalink)  
Antiguo 26/09/2011, 08:19
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 9 años, 2 meses
Puntos: 91
Respuesta: ¿Por qué me da fallo este cursor?

Bueno, en este caso lo hiciste bien, pero en caso de que también lo necesites te dejo este tip:

Cita:
Los cursores deben declararse antes de declarar los handlers, y las variables y condiciones deben declararse antes de declarar los cursores o handlers.
Solo como consejo :P

Saludos.

Etiquetas: fallo, registros, select, sql
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 04:02.