Ayudapa para crear un procedimiento almacenado
Publicado por Mario (2 intervenciones) el 25/03/2009 09:03:12
Hola, estoy intentando crear un procemiento almacenado en MySQL mediante el software EMS SQL Manager 2005, pero me devuelve el error: "Variable or condition declaration after cursor or handler declaration".
El código es el siguiente:
CREATE PROCEDURE `new_proc`()
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE DONE INT DEFAULT O;
DECLARE C1 CURSOR FOR SELECT C_PROVINCIA, C_MUNICIPIO, C_POSTAL FROM MUNICIPIOS;
DECLARE PROVINCIA VARCHAR(5);
DECLARE MUNICIPIO VARCHAR(5);
DECLARE CP VARCHAR(5);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN C1;
REPEAT
FETCH C1 INTO PROVINCIA, MUNICIPIO, CP ;
IF NOT DONE THEN
UPDATE `municipios`
SET C_MUNICIPIO=CONCAT(PROVINCIA,MUNICIPIO)
WHERE C_PROVINCIA=PROVINCIA AND C_POSTAL=CP;
END IF;
UNTIL DONE END REPEAT;
CLOSE C1;
END;
¿Alguien sabe porque se produce y que quiere decir este error?
Muchas gracias y un saludo.
El código es el siguiente:
CREATE PROCEDURE `new_proc`()
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE DONE INT DEFAULT O;
DECLARE C1 CURSOR FOR SELECT C_PROVINCIA, C_MUNICIPIO, C_POSTAL FROM MUNICIPIOS;
DECLARE PROVINCIA VARCHAR(5);
DECLARE MUNICIPIO VARCHAR(5);
DECLARE CP VARCHAR(5);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN C1;
REPEAT
FETCH C1 INTO PROVINCIA, MUNICIPIO, CP ;
IF NOT DONE THEN
UPDATE `municipios`
SET C_MUNICIPIO=CONCAT(PROVINCIA,MUNICIPIO)
WHERE C_PROVINCIA=PROVINCIA AND C_POSTAL=CP;
END IF;
UNTIL DONE END REPEAT;
CLOSE C1;
END;
¿Alguien sabe porque se produce y que quiere decir este error?
Muchas gracias y un saludo.
Valora esta pregunta


0