ERROR: Genera datos temporales DW (cub_0006)

Hola, estamos queriendo exportar datos de Guaraní para Wichi y en la opción

Genera datos temporales DW (cub_0006) me da error (envío captura de pantalla)

Que puede ser?

Muchas Gracias


error_cub_0006.png

error_cub_0006.png

Gonzalo, si corrés esto por afuera de la aplicación (desde un SQL Editor) te da el mismo error?

   SELECT sga_anio_academico.anio_academico,   
         int_arau_reins_cab.fecha_actualiza,   
         int_arau_reins_cab.responsable,   
         sga_anio_academico.fecha_inicio,
			  (SELECT	COUNT(rei.legajo)
				FROM		int_arau_reinscrip rei
				WHERE		rei.anio_academico = int_arau_reins_cab.anio_academico) cant_reinsc
    FROM  OUTER int_arau_reins_cab,   
         sga_anio_academico  
   WHERE ( int_arau_reins_cab.anio_academico = sga_anio_academico.anio_academico )    
 

Pareciera que la subquery (SELECT COUNT…) está trayendo más de un registro.
La consulta que te pasé para verificar es la que se ejecuta en el datawindow de la operación: dk_act_reins_anioacad, para corrorobar si es allí donde falla.

Gracias por la pronta respuesta.

Pero no es eso. La consulta que me diste se resuelve correctamente.

Estos son los procedures que se corren al seleccionar “Procesar” en esa operación, en el siguiente orden:
sp_int_dw_delete
sp_int_dw_i_alu
sp_int_dw_i_per

Fijate de ejecutar uno por uno y ver cual de todos es el que falla. Luego hace un trace al que falle y veamos donde esta el problema.
Saludos.

Gonzalo, pudiste encontrar el problema?

En eso estoy Ale. Pasa que no puedo hacer un trace por problemas de configuración en el server, (y son todos clones) así que se complica un poco.

ok.
Mirando esos procesos que te pase quizas el problema lo tengas con algun alumno y una consulta que se hace en el proceso
sp_int_dw_dating

Podes ver de correr lo siguiente:

SELECT "EXECUTE PROCEDURE sp_int_dw_dating ('" || unidad_academica || "','" || carrera  || "','" || legajo || "');"
  FROM sga_alumnos;

Al resultado que recupere esta consulta , ponela en el sqleditor y ejecuta cada execute procedure…
Fijate cual es el que falla. Si falla alguno es porque tenes algun problema con ese alumno y el registro de inscripciones a carreras.

Hola Alejandro, tengo el mismo error y ya identifiqué que el sp_int_dw_i_alu es el que tira el error, como hago para hacerle una traza y saber con alumno/s falla?

Saludos

Diego Maza

UNPA

Del catálogo de la base qeu se entrega con cada version, fijate de editar el archivo correspondiente al procedure que vas a hacer debug.
Al editarlo, luego del primer begin donde empieza el cuerpo del procedure coloca las siguientes sentencias:


set debug file to "c:\debug_proceso.txt";
trace on;

El path y archivo a donde ira a parar el trace dependera del sistema operativo y verifica que tengas permiso de escritura.

Luego antes del END final debes cerrar el debug con:

trace off;

Una vez que corres el proceso desde el sistema, creara el archivo que definiste en la sentencia “set debug file to”. Si hubiera error al final del archivo deberia especificar cual es el error.
Si no podes detectarlo, podes enviarnos el archivo del debug y lo vemos.

Saludos

Hola Alejandro, hice el debug y encontré que al parecer el problema es con los datos de un alumno que aparece mas de una vez. Te paso el archivo de debug asi me orientás un poco más.

Saludos

Diego Maza
UNPA


debug_proceso.txt (7.66 KB)

Les falta la pk de la tabla sga_alumnos?

Porque en el proceso sp_int_dw_i_alu lo que se hace es recorrer al tabla de alumnos y por cada alumno inserta un registro en la tabla int_dw_alumnos_red la cual tiene la misma pk de la tabla sga_alumnos, es decir unidad_academica+carrera+legajo.

  1. Verifica si tenes creada bien la pk de la tabla int_dw_alumonos_red:
ALTER TABLE int_dw_alumnos_red ADD CONSTRAINT PRIMARY KEY (UNIDAD_ACADEMICA, CARRERA, LEGAJO) CONSTRAINT pk_dw_alumnos_red;
2. Verifica que tengas bien creada la pk de la tabla sga_alumnos

Porque si esto lo tenes bien, no deberias tener la misma combinación de la identificacion de un alumno (unidad_academica+carrera+legajo)

Lo unico que se me ocurre que esa tabla ya tuviera datos y que el proceso de geracion de informacion para Datawarehouse no haya borrado los datos y cuando lo corres nuevamente encuentra registros duplicados.

Diego, pudiste detectar el problema?

Gente,
en mi caso, pasa exactamente lo mismo, estoy queriendo generar los datos para el cubo, y me da error el sp_int_dw_i_alu que una subquery devuelve mas de un registro.
¿Como reviso los objetos deshabilitados, ya sea claves, constraints, triggers, etc? Se que con un select uno puede sacar esto, pero no encuentro la consulta.
Tengo un par de alumnos con dos entradas en la tabla sga_alumnos con igual carrera y legajo.
Espero sus respuestas.

Marcela Vera
UTN - FRSF

Gente,
estuve revisando los datos, y no son alumnos con dos entradas en la tabla de sga_alumnos, sino que las entradas estan duplicadas en sga_carrera_aspira para la misma carrera, o sea, se inscribieron en años distintos a la misma carrera.
¿Es esto lo que trae problemas en ese sp?
Espero las respuestas.

Marcela Vera

Tenes problemas si para la misma persona y carrera tenes mas de un registro en inscripciones a carreras con resultado A (Aspirante a Carrera) o resultado I (Inscripto en la carrera)

Lo podes verificar con esta consulta:

select unidad_academica, nro_inscripcion, carrera, count(*) 
  from sga_carrera_aspira as ca, sga_situacion_asp as sa
where sa.situacion_asp = ca.situacion_asp
and sa.resultado_asp in ('A','I')
group by 1, 2, 3
having count(*)  > 1

Si devuelve datos fijate alguno de esos alumnos, ya que no estarian bien estas inscripciones…

Alejandro,
tengo para la misma persona y carrera, registros con resultado IL (Ingresante con legajo)…
Estoy conversando con alumnado para ver cual de las inscripciones es la valida, para borrar una de las dos entradas.
Saludos.

Marcela Vera

Ese es un problema en prinicipío.
La inscripción que no sea válida ponela como rechazada, debes cambiar el dato del campo situacion_asp
Fijate alguno de estos valores cual corresponde:


select * from sga_situacion_asp where resultado_asp = 'R';

Alejandro,
ya modifique y la operacion de generacion de datos temporales NO da error… pero hace 5 horas que esta corriendo Y NO FINALIZA… ¿Cuanto tiempo deberia demorar???
No completa logical logs, y veo que que realizo 121.000 escrituras… pero me preocupa la duracion de este proceso.
Espero tu respuesta, para ver si lo detengo, o dejo que siga generando.
Saludos.

Marcela Vera

Recupera info de todos los alumnos.
Las estadisticas de la base de datos estan actualizadas?

Alejandro.
lo estoy corriendo sobre una BD de desarrollo, que semanalmente se genera a partir de un dbexport de la de producción. La de producción tiene las estadisticas actualizadas, por lo que asumo que esta también.
El proceso sigue, siendo las 15 hs, y comenzo a las 8:00 hs, hasta el momento son 7 hs.

Marcela Vera