SOLUCIONADO Error en inscripcion cursada

Hola! Tengo un problema en la inscripción a cursadas, el momento de intentar seleccionar la materia a inscribir me tira un error “Problema desconocido en control corrInscCurs” (-284-). Verifique el estado del acta, fecha del servidor y demas pero no se me ocurre…
Estamos la version del SIU-Guarani 2.04.2.
Desde ya gracias.

Rocío, aparentemente es un error en el procedimiento ctr_corrInscCurs. Deberían ejecutar el procedimiento con los argumentos del caso en particular y depurarlo… es para un caso o para todas las inscripciones. El código indica que una consulta está devolviendo mas de una fila, cuando en la lógica del procedimiento se espera solo una.

-284 A subquery has returned not exactly one row.

A subquery that is used in an expression in the place of a literal value must return only a single row and a single column. In this statement, a subquery has returned more than one row, and the database server cannot choose which returned value to use in the expression. You can ensure that a subquery will always return a single row. Use a WHERE clause that tests for equality on a column that has a unique index. Or select only an aggregate function. Review the subqueries, and check that they can return only a single row.

This error can also occur when you use a singleton SELECT statement to retrieve multiple rows. You must use the DECLARE/OPEN/FETCH series of statements or the EXECUTE INTO statement to retrieve multiple rows.

Espero te ayude.
Saludos

si gracias, tuvimos que modificar el sp directamente, tenia problemas en los cambois de planes de los alumnos

Hola Rocío

Podrías detallar mas el error y la solución?
Si se trata de alguna situación general habría que corregirlo

Emilio

Hola Emilio!

Bueno la solucion fue personalizar el sp verificando que una consulta interna devuleva el ultimo plan en que se encontraba anotado el alumno, ya que anteriormente al ejecutar la consulta retornaba los planes en los que se encontró alguna vez, sin considerar si se cambio al plan activo actual, solo este último. Este problema salió cuando intentabamos inscribir al alumno en cursadas y solo en algunos alumnos.
En el procedimiento sp_plan_alumno modificamos la primer consulta que realiza a las siguientes lineas:

SELECT sga_cambios_plan.plan,
sga_planes.version_actual,
sga_versiones_plan.fecha_ent_vigencia
INTO v_plan,
v_version,
v_fecha_vigencia
FROM sga_planes,
sga_versiones_plan,
sga_cambios_plan
WHERE sga_planes.unidad_academica = sga_versiones_plan.unidad_academica
AND sga_planes.carrera = sga_versiones_plan.carrera
AND sga_planes.plan = sga_versiones_plan.plan
AND sga_planes.version_actual = sga_versiones_plan.version
AND sga_cambios_plan.unidad_academica = sga_planes.unidad_academica
AND sga_cambios_plan.carrera = sga_planes.carrera
AND sga_cambios_plan.plan = sga_planes.plan
AND sga_cambios_plan.unidad_academica = p_unidad_academica
AND sga_cambios_plan.carrera = p_carrera
AND sga_cambios_plan.legajo = p_legajo
AND p_fecha >= sga_cambios_plan.fecha_desde
AND (sga_cambios_plan.fecha_hasta IS NULL OR p_fecha < sga_cambios_plan.fecha_hasta)
AND sga_cambios_plan.plan = (SELECT MAX(plan) FROM sga_cambios_plan WHERE
sga_cambios_plan.legajo = p_legajo);

Este problema aparecio en la versión 2.4 y se resolvió despues de esta modificación.
Ya migramos la versión a la 2.6 y no hemos encontrado algun problema similar todavia, si otro pero lo comente en otro mensaje. Gracias, espero les sirva.

Debo hacer la aclaración que el sp no tenia problemas, sino nuestros datos, ya que algunos alumnos que habiamos cambiado el plan, no le ingresamos la fecha_hasta en el plan anterior (de fin de vigencia como plan de alumno), por lo tanto contaba como si ambos estivieran activos. Al hacerlo por sistema no surge el mismo error.