Estimados, me encuentro tratando de modificar el legajo de una alumna y estoy usando un procedimiento que nos paso el SIU y que modifique un poquito para hacer foco en una de las tablas que no me deja modificar.
– Creating procedure
CREATE PROCEDURE sp835_cambia_leg ( pUA LIKE sga_alumnos.unidad_academica, pCarrera LIKE sga_alumnos.carrera, pleg_viejo LIKE sga_alumnos.legajo , pleg_nuevo LIKE sga_alumnos.legajo, pNRO_INSCRIPCION LIKE aca_usuarios_ag.nro_inscripcion)
Returning INTEGER
– 0 Error || 1 OK
,VARCHAR(255) ;
– Mensaje
-- Variables para el manejo de excepciones
DEFINE SQL_Err INTEGER;
DEFINE ISAM_Err INTEGER;
DEFINE error_Info VARCHAR(76);
–SET DEBUG FILE TO “c:\updleg.txt”;
– TRACE ON;
BEGIN
ON EXCEPTION SET sql_err, isam_err, error_info
ROLLBACK WORK;
return 0,'Error en la ejecuci?n: ' || sql_err || '-' || error_info ;
raise exception sql_err, isam_err, error_info;
END EXCEPTION;
If Exists (Select * from sga_alumnos where unidad_academica = pUA and carrera = PCarrera and legajo = pleg_viejo) Then
-- sigo
Else
return 0,'No se encontr? el legajo para esos parametros';
End if;
BEGIN WORK;
– trace 'antes del update ’ ;
SET CONSTRAINTS ALL DEFERRED;
SET triggers for sga_det_perd_regul disabled;
UPDATE sga_det_perd_regul SET legajo = pleg_nuevo WHERE unidad_academica = pUA and carrera = PCarrera and legajo = pleg_viejo;
SET triggers for sga_det_perd_regul enabled;
– trace 'luego del update ’ ;
COMMIT;
RETURN 1,'Todo bien.';
END;
– trace off;
END PROCEDURE;
EXECUTE PROCEDURE sp835_cambia_leg (‘UARG’,‘046’,‘1-92592873/99’,‘1-18823667/99’, ‘MIGRG-4402’);
El error que obtengo al ejecutar este procedimiento es:
Error en la ejecuci?n: -242-dba.sga_det_perd_regul
Alguna idea de que puede ser? Este mismo procedimiento para otras carreras de la alumna funciona correctamente, lo único que veo que la carrera 046 fue migrada.
Saludos Fernando.