Ver Mensaje Individual
  #8 (permalink)  
Antiguo 27/01/2010, 07:52
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: CURSOR arroja Column ... cannot be null cuando consulta es vacia

¿Y si pruebas evitar tener que ahcer dos cursores. Eso sería, en definitiva, hacer que una sola consulta te devuelva la tabla de datos necesaria, lo que se puede hacer con una consulta menos simplista.
Algo (tal vez) así:

Código MySQL:
Ver original
  1.  
  2. DECLARE NROSECCION INTEGER;
  3. DECLARE TPROD FLOAT;
  4.  
  5.   /* Declarando un cursos que devuelva todos los valores válidos */
  6.   DECLARE C1 CURSOR FOR
  7.     id_tarj, SUM(totproddia_noti) AS totPROD
  8.   FROM notificacion n INNER JOIN acta a USING(id_acta)
  9.       INNER JOIN secuencia s USING(id_secu)
  10.       INNER JOIN pro_tarja p USING(id_acta)
  11.     p.seccion_tarj=s.numseccion_secu
  12.     AND s.numseccion_secu  =NROSECCION
  13.     AND n.id_acta IN
  14.       (
  15.       SELECT a.id_acta,seccion_tarj
  16.       FROM `pro_tarja` p INNER JOIN acta a USING(id_acta)
  17.       WHERE a.id_empr=IDEMPR;
  18.       );
  19.   /* HANDLER */
  20.   DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
  21.   SET doneC1 = TRUE;
  22.  
  23.   -- abro el cursor 1
  24.   OPEN C1;
  25.   C1_loop: LOOP
  26.     FETCH C1 INTO IDTARJ,TPROD;
  27.     /* ********************************************** */
  28.     /*                TAREAS INDICADAS                */
  29.     /* ********************************************** */
  30.   END LOOP C1_loop;
  31.  
  32.   CLOSE C1;
  33.  
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)