[SOLUCIONADO] PROBLEMA CON EL PARAMETRO: horas_borrar_antes_examen

Hice lo siguiente:

corri el SP de nuevo y anduvo!

La unica conclusión que saco es que en una version anterior este SP tenia ese error y luego se corrigió. Y por alguna razón la conversión de la base de datos no lo reemplazó.
Puede ser?

SALUDOS

Hola Martin

Fijate en alguna exportación de la base, que tenías antes.

Emilio

Hola Emilio,

ahi me fije y esta distinto, hace un DECODE del tipo de mesa de examen y toma eso como mesa de examen, en este caso hacia: ‘R’ then “Regular”. La verdad muy raro que este así, porque si yo le ponia cualquier otro nombre, suponete MESA DE REGULARES, menos iba a coincidir. De que versión será eso?

Te transcribo el SP como estaba:

SALUDOS


CREATE PROCEDURE “dba”.sp_inscexam(

             pUnidadAcademica LIKE sga_insc_examen.unidad_academica,

             pNroInscripcion  LIKE sga_personas.nro_inscripcion)

RETURNING varchar(5), – unidad academica

       varchar(5),                -- carrera

       varchar(15),               -- legajo

       varchar(5),                -- materia

       char(19),                  -- fecha y hora de Insc (datetime year to second)

       integer,                   -- anio academico

       varchar(20),               -- turno examen

       integer,                   -- llamado

       varchar(15),               -- mesa examen

       char(1),                   -- tipo insc

       char(1),                   -- estado

       char(1),                   -- equiv Parcial

       varchar(5),                -- materia generica

       varchar(15),               -- catedra

       char(1),                   -- admite libres

       varchar(5),                -- grupo carrera

       char(10),                  -- dia del prestamo del aula

       char(8),                   -- hora del prestamo del aula

       varchar(255),              -- docentes de una mesa

       varchar(100),               -- materia nombre reducido

       varchar(8),                -- tipoInsc nombre

       varchar(10),               -- estado nombre

       varchar(30),               -- Nombre Carrera Reducido

       varchar(70),               -- Apellido + Nombre  Alumno

       varchar(20),                   -- Nro transaccion

varchar(255),	-- materia nombre completo

varchar(5), -- sede

varchar(255);  -- Nombre sede

– variables utilizadas.

DEFINE vcCarNomReducido varchar(30);

DEFINE vcUnidadAcademica LIKE sga_insc_examen.unidad_academica;

DEFINE vcCarrera LIKE sga_insc_examen.carrera;

DEFINE vcLegajo LIKE sga_insc_examen.legajo;

DEFINE vcMateria LIKE sga_insc_examen.materia;

DEFINE dFecHoraInsc char(19);

DEFINE vcMateria_aux LIKE sga_insc_examen.materia;

DEFINE iAnioAcademico_aux, iAnioAcademico LIKE sga_insc_examen.anio_academico;

DEFINE vcTurnoExamen_aux, vcTurnoExamen LIKE sga_insc_examen.turno_examen;

DEFINE vcMesaExamen_aux, vcMesaExamen LIKE sga_insc_examen.mesa_examen;

DEFINE iLlamado_aux LIKE sga_insc_examen.llamado;

DEFINE iLlamado LIKE sga_insc_examen.llamado;

DEFINE cTipoInsc LIKE sga_insc_examen.tipo_inscripcion;

DEFINE cEstado LIKE sga_insc_examen.estado;

DEFINE cEquivParcial LIKE sga_insc_examen.equiv_parcial;

DEFINE vcMatGenerica LIKE sga_insc_examen.materia_generica;

DEFINE vcCatedra LIKE sga_mesas_examen.catedra;

DEFINE cAdmiteLibres LIKE sga_mesas_examen.admite_libres;

DEFINE vcGrupoCarrera LIKE sga_mesas_examen.grupo_carrera;

DEFINE iLlamadoMesa LIKE sga_llamados_mesa.llamado;

DEFINE dFecInicioInscMesa LIKE sga_fec_insc_llam.fecha_inicio;

DEFINE dFecFinInscMesa LIKE sga_fec_insc_llam.fecha_fin;

DEFINE hHoraInicioPrest char(8);

DEFINE dFecPrest char(10);

DEFINE vcDocentesMesa varchar(255);

DEFINE vcMateriaNombre LIKE sga_atrib_mat_plan.nombre_materia;

DEFINE vcMateriaNombreRed LIKE sga_atrib_mat_plan.nombre_reducido;

DEFINE vcTipoInscNombre varchar(8);

DEFINE vcEstadoNombre varchar(10);

DEFINE vcNombreAlumno varchar(70);

DEFINE vcNroTrans LIKE sga_insc_examen.nro_transaccion;

DEFINE vcSede LIKE sga_sedes.sede;

DEFINE vcNombreSede LIKE sga_sedes.nombre;

BEGIN

LET vcMateria_aux = ‘’;

LET iAnioAcademico_aux = ‘’;

LET vcTurnoExamen_aux = ‘’;

LET vcMesaExamen_aux = ‘’;

LET iLlamado_aux = 0;

– Nombre del Alumno

LET vcNombreAlumno = ‘’;

SELECT TRIM(sga_personas.apellido) || ’ ’ || TRIM(sga_personas.nombres) INTO vcNombreAlumno

 FROM sga_personas

WHERE sga_personas.unidad_academica = pUnidadAcademica

  AND sga_personas.nro_inscripcion = pNroInscripcion;

– recupera las inscripciones a los examenes

FOREACH

 SELECT  DISTINCT ie.unidad_academica,

            ie.carrera,

            ie.legajo,

            ie.materia,

            sp_datetime_string(ie.fecha_inscripcion) as fecha_insc,

            ie.anio_academico,

            ie.turno_examen,

            ie.llamado,

           DECODE(ie.tipo_inscripcion, "R", "Regular", "O", "Libre", "E", "Libre")  mesa_examen,

           DECODE(ie.tipo_inscripcion, "R", "Regular", "O", "Libre", "E", "Libre"),

            ie.estado,

            ie.equiv_parcial,

            ie.materia_generica,

            me.catedra,

            DECODE(me.admite_libres, "R", "Regular", "O", "Libre", "E", "Libre"),

            me.grupo_carrera,

            sp_time_string(p.hora_inicio) as hora_exa,

            sp_date_string(p.fecha) as fecha_exa,

            amp.nombre_reducido,

DECODE(sga_tipos_mesa.desc_tipo_insc, "Libre Escr", "Libre", "Libre Oral", "Libre", "Regular", "Regular"),

            DECODE(ie.estado, 'P', 'Pendiente', 'B', 'Baja', 'A', 'Activa', 'E', 'Exceptuado'),

            ca.nombre_reducido,

            ie.nro_transaccion,

amp.nombre_materia,

sga_sedes.sede,

sga_sedes.nombre

INTO vcUnidadAcademica, vcCarrera, vcLegajo, vcMateria, dFecHoraInsc,

iAnioAcademico, vcTurnoExamen, iLlamado, vcMesaExamen, cTipoInsc, cEstado,	

cEquivParcial, vcMatGenerica,  vcCatedra, 

cAdmiteLibres, vcGrupoCarrera, 			

hHoraInicioPrest, dFecPrest, 

vcMateriaNombreRed, vcTipoInscNombre,vcEstadoNombre,

vcCarNomReducido, vcNroTrans, vcMateriaNombre, vcSede, vcNombreSede

FROM sga_alumnos al,

sga_insc_examen  ie,

sga_mesas_examen  me,

sga_llamados_mesa  llm,

sga_prestamos p,

sga_planes pl,

sga_atrib_mat_plan amp,

sga_carreras ca,

sga_tipos_mesa,

sga_sedes

WHERE al.unidad_academica = pUnidadAcademica

AND al.nro_inscripcion		= pNroInscripcion

AND ie.estado IN ('A', 'P', 'E')

AND ie.unidad_academica 		= al.Unidad_Academica

AND ie.carrera 			= al.Carrera

AND ie.legajo 			= al.Legajo

AND ca.unidad_academica 	= ie.Unidad_Academica

AND ca.carrera 			= ie.Carrera

AND me.unidad_academica 	= ie.unidad_academica

AND me.materia          		= ie.materia

AND me.anio_academico   		= ie.anio_academico

AND me.turno_examen     		= ie.turno_examen

AND me.mesa_examen      		= ie.mesa_examen

AND llm.unidad_academica 	= me.unidad_academica

AND llm.materia          		= me.materia

AND llm.anio_academico   		= me.anio_academico

AND llm.turno_examen     		= me.turno_examen

AND llm.mesa_examen      		= me.mesa_examen

AND llm.llamado          		= ie.llamado

AND p.fecha >= TODAY

AND p.prestamo 		= llm.prestamo

AND pl.unidad_academica  	= ie.unidad_academica      	

AND pl.carrera  			= ie.carrera 		

AND pl.plan     			= ie.plan			



AND amp.unidad_academica 	= pl.unidad_academica

AND amp.carrera 		= pl.carrera

AND amp.plan    			= pl.plan

AND amp.version 		= pl.version_actual

AND amp.materia 		= ie.materia



AND ie.tipo_inscripcion 		= sga_tipos_mesa.tipo_mesa

AND me.sede = sga_sedes.sede



ORDER BY fecha_exa, ie.anio_academico, ie.turno_examen, ie.llamado, ie.materia, fecha_insc

– DECODE(ie.tipo_inscripcion, ‘R’, ‘Regular’, ‘L’, ‘Libre’, ‘Regular’),

– to_char(p.hora_inicio,“%H:%M”),

– sga_fec_insc_llam llfeinsc,

– AND llfeinsc.anio_academico = llm.anio_academico

– AND llfeinsc.turno_examen = llm.turno_examen

– AND llfeinsc.llamado = llm.llamado

– AND TODAY BETWEEN llfeinsc.fecha_inicio AND llfeinsc.fecha_fin

– AND TODAY <= p.fecha prestamo

    -- Recupero los Docentes de una Mesa

   IF ( vcMateria      <> vcMateria_aux      OR

        iAnioAcademico <> iAnioAcademico_aux OR

        vcTurnoExamen  <> vcTurnoExamen_aux  OR

        vcMesaExamen   <> vcMesaExamen_aux   OR

        iLlamado       <> iLlamado_aux )     THEN



            -- Saco los docentes de la Mesa

            LET vcMateria_aux      = vcMateria;

            LET iAnioAcademico_aux = iAnioAcademico;

            LET vcTurnoExamen_aux  = vcTurnoExamen;

            LET vcMesaExamen_aux   = vcMesaExamen;

            LET iLlamado_aux       = iLlamado;

            LET vcDocentesMesa     = sp_doc_una_mesa(pUnidadAcademica, vcMateria, iAnioAcademico, vcTurnoExamen, vcMesaExamen, iLlamado);

END IF;



   -- si no encontro nada, devuelve nulos

  RETURN  vcUnidadAcademica, vcCarrera, vcLegajo, vcMateria, 

dFecHoraInsc, iAnioAcademico, vcTurnoExamen, iLlamado, vcMesaExamen, 

cTipoInsc, cEstado,cEquivParcial, vcMatGenerica, vcCatedra,

cAdmiteLibres, vcGrupoCarrera, dFecPrest,  hHoraInicioPrest, vcDocentesMesa, 

vcMateriaNombreRed, vcTipoInscNombre, vcEstadoNombre, vcCarNomReducido, vcNombreAlumno, vcNroTrans, vcMateriaNombre, vcSede, vcNombreSede  WITH RESUME;

END FOREACH ;

END;

END PROCEDURE
;