Error -284 en Araucano Nominal

Hola que tal?

Estamos sacando el araucano nominal en las diferentes Unidades Académicas de la UNER,
en algunas funciona bien, pero en otras nos sale el siguiente error al generar los archivos:

*** Generando información nominal de alumnos ***
El proceso puede demorar algunos minutos…
Error: -284 -

  • Proceso finalizado!!!

Se generaron los archivos:

Según tengo entendido ese es el error SQL que tira cuando alguna consulta que se supone devuelve un solo valor, devuelve más de uno, por ejemplo en un SELECT … FROM … INTO …

En que lugar del script que ejecuta puede estar el problema?
A alguién le pasó algo similar y lo pudo solucionar?

Desde ya muchas gracias…

Versión Guarani 2.07.0

Hola, nosotros nos enfrentamos al mismo error, no te queda otra que depurar el sp.
En nuestro caso resolvimos problemas en la tabla sga_cambios_plan para un pequeño grupo de alumnos y por otro lado el procedimiento que devuelve los últimos datos censales de la persona, para ciertos casos, me devolvía mas de un registro. Calculo un tema de migración de datos.
Te adjunto el sp propio para tratar de ubicar los inconvenientes con los cambios de plan y el sp que entrega SIU modificado.
Te recomiendo que los ejecutes en una base de datos copia de la de producción.
Saludos


sp_825dch_controla_cambios_plan.sql (2.99 KB)

sp_araunom_datpers.sql (5.36 KB)

Puede ser que el error lo de el procedure sp_araunom_datpers.sql que es el que se utiliza para recuperar algunos datos personales del alumno que se informa en el archivo 0.

Fijate si esta query da ese error:

select nro_inscripcion,  sp_araunom_datpers(unidad_academica, nro_inscripcion, 2017, to_date('01042017','%d%m%Y'), to_date('31032018','%d%m%Y')
from sga_personas

Hola!
A mí me da error en el sp_araunom_datpers al buscar la última actualización de los datos censales, me da clave duplicada. Y lo modifiqué provisoriamente así porque no sé cuándo se actualiza una u otra fecha en los datos censales.

{ SELECT sga_datos_censales.fecha_relevamiento,
sga_datos_censales.fecha_actualiz
INTO vc_FechaDC, vc_FechaAct
FROM sga_datos_censales
WHERE sga_datos_censales.unidad_academica = pUA
AND sga_datos_censales.nro_inscripcion = pNroInscripcion
AND ((sga_datos_censales.fecha_relevamiento = vc_FechaReins) OR (sga_datos_censales.fecha_actualiz = vc_FechaReins));
}
SELECT sga_datos_censales.fecha_relevamiento,
sga_datos_censales.fecha_actualiz
INTO vc_FechaDC,
vc_FechaAct
FROM sga_datos_censales
WHERE sga_datos_censales.unidad_academica = pUA
AND sga_datos_censales.nro_inscripcion = pNroInscripcion
AND sga_datos_censales.fecha_relevamiento = vc_FechaReins ;

     IF vc_FechaDC IS NULL THEN
     	SELECT sga_datos_censales.fecha_relevamiento,
            	sga_datos_censales.fecha_actualiz
           INTO vc_FechaDC,
               	vc_FechaAct
           FROM sga_datos_censales
          WHERE sga_datos_censales.unidad_academica = pUA
            AND sga_datos_censales.nro_inscripcion  = pNroInscripcion
            AND sga_datos_censales.fecha_actualiz = vc_FechaReins;
     END IF

Natalia, en la ultima publicacion de los scripts de esta operación, el procedure sp_araunom_datpers esta modificado, fijate que tiene unos MAX() (que justamente es para resolver este problema de registros duplicados con misma fecha) que no es la version que vos tenes:

  -- El alumno no se reinscribió en el año académico informado.
  IF vc_FechaReins IS NULL THEN
     
     -- INFORMO QUE NO SE DISPONE DE INFORMACION
     
  -- Busco el Dato Censal correspondiente a la reinscripción.
  ELSE

SELECT MAX(sga_datos_censales.fecha_relevamiento), MAX(sga_datos_censales.fecha_actualiz)
INTO vc_FechaDC, vc_FechaAct
FROM sga_datos_censales
WHERE sga_datos_censales.unidad_academica = pUA
AND sga_datos_censales.nro_inscripcion = pNroInscripcion
AND ((sga_datos_censales.fecha_relevamiento = vc_FechaReins) OR (sga_datos_censales.fecha_actualiz = vc_FechaReins));

  END IF;

Sí sí Ale! Lo ví y lo modifiqué. En el post del Araucano lo comenté.
También hay que corregir el sp_int_arau_datcen.sql, dá el mismo error.

Gracias!!!