Estimados, tengo un CURSOR del que obtengo 2 parámetros para luego pasarselos a otro CURSOR. El problema es que hay veces en que la respuesta es simplemente vacia y al intentar hacer un volcado de los datos con el FETCH me aparece:
Column 'id_tarj' cannot be null
Código SQL:
Ver originalBEGIN
DECLARE IDACTA INTEGER;
DECLARE NROSECCION INTEGER;
DECLARE IDTARJ INTEGER;
DECLARE doneC1 BOOLEAN DEFAULT FALSE;
DECLARE TPROD FLOAT;
DECLARE C1 CURSOR FOR
(
SELECT a.id_acta,seccion_tarj
FROM `pro_tarja` p, acta a
WHERE p.id_acta=a.id_acta AND a.id_empr=IDEMPR
);
DECLARE C2 CURSOR FOR
(
SELECT
id_tarj, SUM(totproddia_noti) AS totPROD
FROM notificacion n,acta a, secuencia s, pro_tarja p
WHERE
n.id_acta=a.id_acta AND a.id_acta=s.id_acta AND n.id_secu=s.id_secu AND
p.id_acta=a.id_acta AND p.seccion_tarj=s.numseccion_secu
AND n.id_acta =IDACTA
AND s.numseccion_secu =NROSECCION
);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
BEGIN
SET doneC1 = TRUE;
END;
-- abro el cursor 1
OPEN C1;
C1_loop:
LOOP
-- por cada registro encontrado llamo al cursor 2 con las variables requeridas
FETCH C1 INTO IDACTA, NROSECCION;
IF `doneC1` THEN LEAVE C1_loop; END IF;
OPEN C2;
FETCH C2 INTO IDTARJ,TPROD;
-- AQUI EL ERROR ..y unas rutinas que no importan
CLOSE C2;
END LOOP C1_loop;
CLOSE C1;
END
Porfa una orientación de como puedo abordar este tema.
Gracias!!