Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/03/2009, 07:04
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: Ayuda para crear un procedimiento

Porque los cursores se declaran después de todas las variables y los handlers después de todas las declaraciones. No se pueden crear variable luego de declarar un HANDLER. Nunca.
Código sql:
Ver original
  1. CREATE PROCEDURE `new_proc`()
  2. NOT DETERMINISTIC
  3. SQL SECURITY DEFINER
  4. COMMENT ''
  5. BEGIN
  6.    DECLARE DONE INT DEFAULT O;
  7.    DECLARE PROVINCIA VARCHAR(5);
  8.    DECLARE MUNICIPIO VARCHAR(5);
  9.    DECLARE CP VARCHAR(5);
  10.    DECLARE C1 CURSOR FOR SELECT C_PROVINCIA, C_MUNICIPIO, C_POSTAL FROM MUNICIPIOS;
  11.    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  12.  
  13.  
  14.    OPEN C1;
  15.  
  16.    REPEAT
  17.    FETCH C1 INTO PROVINCIA, MUNICIPIO, CP ;
  18.       IF NOT DONE THEN
  19.          UPDATE `municipios`
  20.          SET C_MUNICIPIO=CONCAT(PROV,MUNI)
  21.          WHERE C_PROVINCIA=PROV AND C_POSTAL=CP;
  22.       END IF;
  23.    UNTIL DONE END REPEAT;
  24.  
  25. END ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)