Para aclarar un poquito mas el ultimo mje.
Realice las siguientes modificaciones en la base de datos:
ALTER TABLE u842_lbr_crrera_ua
MODIFY nro_libro varchar(4);
ALTER TABLE u842_libros_ua
MODIFY nro_libro varchar(4);
y modifique un stored procedure:
CREATE PROCEDURE “dba”.sp842_ins_lib_ua(
pUnidadAcademica LIKE u842_nro_acta_exm .unidad_academica,
pCarrera LIKE u842_nro_acta_exm .carrera,
pLibro LIKE u842_lbr_crrera_ua .nro_libro,
pLibroCarrera LIKE u842_nro_acta_exm .nro_libro_carrera
)
define v_nroLibro like u842_lbr_examen.id_libro;
define nombre like sga_libros_de_acta.nombre;
BEGIN
– Obtiene el numero autoincremental del libro.
select id_libro into v_nrolibro
from u842_lbr_examen;
– Genera el nombre del Libro de Acta.
LET nombre = lpad(plibro,4,'0') || '-'||
SUBSTR(pUnidadAcademica,LENGTH(pUnidadAcademica)-1 ,2) || '-'||
lpad(pCarrera,3,'0') || '-'||
lpad(pLibroCarrera,2,'0');
– Inserta un registro en la tabla sga_libros_de_acta
INSERT INTO sga_libros_de_acta
(unidad_academica,
libro,
nombre)
VALUES ( pUnidadAcademica,
v_nrolibro,
nombre);
– Inserta un registro en la tabla u842_libros_ua
INSERT INTO u842_libros_ua
(unidad_academica,
libro,
carrera,
nro_libro_carrera,
nro_libro)
VALUES ( pUnidadAcademica,
v_nrolibro,
pCarrera,
pLibroCarrera,
plibro);
– Inserta un registro en la tabla log_u842_lbr_car para Auditoria.
INSERT INTO log_u842_lbr_car
(unidad_academica,
carrera,
nro_libro,
nro_libro_carrera,
usuario,
fecha_act,
operacion)
VALUES ( pUnidadAcademica,
pCarrera,
plibro,
pLibroCarrera,
User,
Current year to Second,
'I');
----------------------------------------------------------------------------------
– Incrementa en uno el nro_libro de la tabla u842_lbr_examen
--------------------------------------------------------------------------------
Update u842_lbr_examen
set id_libro= v_nrolibro + 1;
END;
END PROCEDURE;