Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IS
--Conteo de libros
v_cont NUMBER := 0;
--Cursor
CURSOR librosAnio_Cursor IS
SELECT libro.isbn AS isbn, libro.titulo AS titulo, libro.categoria as categoria,
libro.copyright_anio AS anioPub, libro.precio AS precio
FROM LIBRO;
--Variable RECORD
v_regLibro librosAnio_Cursor%ROWTYPE;
BEGIN
--Abriendo el cursor
OPEN librosAnio_Cursor;
LOOP
FETCH librosAnio_Cursor INTO v_regLibro;
EXIT WHEN librosAnio_Cursor%NOTFOUND;
IF v_cont = 0 THEN
v_cont := v_cont +1;
END IF;
--Actualizar información
UPDATE LIBRO SET PRECIO = (v_regLibro.precio * 1.20) WHERE libro.isbn =
v_regLibro.isbn;
v_cont := v_cont + 1;
END IF;
END LOOP;
CLOSE librosAnio_Cursor;
--Excepciones
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE ('NO SE ACTUALZIARON DATOS, NO HAY LIBROS PUBLICADOS EN ESE
ANIO');
END;
--Test
SET SERVEROUTPUT ON;
EXECUTE actualizarPrecioStock_Proc(2002);
--2 punto
);
CREATE SEQUENCE seqLogCambiosRev start with 1 Increment by 1;
END;
IF INSERTING THEN
--contador de revisiones diarias por funcionario restringir a 1 diaria
v_operacion :='INSERT';
SELECT count(log_idfun) into v_contFun from logcambiosrev
where log_idfun = pq_aux.v_idfun;
--and trunc(log_fecha)=trunc(sysdate)
if v_contFun >=2 then
RAISE_APPLICATION_ERROR(-20001, 'Solo se permite una revision diaria por
funcionario en la tabla REVISION ');
end if;
IF UPDATING THEN
--se asume que el isbn del libro no se puede modificar
--contador de revisiones diarias por funcionario restringir a 1 diaria
v_operacion :='UPDATE';
SELECT count(log_idfun) into v_contFun from logcambiosrev
where log_idfun = pq_aux.v_idfun_old;
END IF;
END;