Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2014, 11:24
maregeo
 
Fecha de Ingreso: junio-2013
Mensajes: 13
Antigüedad: 11 años, 5 meses
Puntos: 0
Loop en Cursor de Procedimiento Almacenado

Estoy haciendo un PA para una consulta.

El resultado de la consulta, lo quiero incluir en una tabla temporal.

Para ello hago un LOOP para que se inserten los datos en la tabla.

Todo esta ok, EXCEPTO que el último registro lo inserta por DUPLICADO.

Entiendo que es un problema del LOOP, pero llevo unas horas y no encuentro la explicación.

Agradecería un "poco de luz"

PD: Este es el codigo

Código MySQL:
Ver original
  1. DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_last_row_fetched=1;
  2. SET l_last_row_fetched=0;
  3.  
  4. OPEN cur1; 
  5.  
  6. cursor_loop:LOOP
  7.  
  8.     FETCH  cur1 INTO  v_id,v_prioridad_Id, v_status_id, v_status, v_contrato_id, v_objetivo, v_origen, v_descripcion, v_creador,v_retraso, v_fecha_creacion, v_fecha_inicio, v_fecha_fin, v_fecha_modif, v_fecha_cierre, v_modificador, v_ult_modif,v_cerrador, v_codigo, v_poblacion;
  9.     INSERT INTO 080_acciones_temp (id,prioridad_Id, status_id, status, contrato_id, objetivo, origen, descripcion, creador,retraso, fecha_creacion, fecha_inicio, fecha_fin, fecha_modif, fecha_cierre, modificador, ult_modif,cerrador, codigo, poblacion) values (v_id,v_prioridad_Id, v_status_id, v_status, v_contrato_id, v_objetivo, v_origen, v_descripcion, v_creador,v_retraso, v_fecha_creacion, v_fecha_inicio, v_fecha_fin, v_fecha_modif, v_fecha_cierre, v_modificador, v_ult_modif,v_cerrador, v_codigo, v_poblacion);
  10.  
  11.     IF l_last_row_fetched=1 THEN  
  12.     LEAVE cursor_loop;
  13.  
  14.      END IF;
  15. END LOOP cursor_loop;
  16.    
  17. CLOSE cur1;
  18.     SET l_last_row_fetched=0;
  19.    
  20.     Select * from 080_acciones_temp;