Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Examen
Profesor
Auxiliar:
ANLISIS DE SISTEMAS
2do. Final
Carmen N. Martnez W.
Lilian Riveros
Asignatura:
Seccin
Nombre Alumno
BASE DE DATOS II
J
FECHA
17-Dic-2011
PUNTAJE
Tema 1
Tema 2
Tema 3
Tema 4 (opcional)
TOTAL
50
25
25
100
Carrera
Examen
Profesor
Auxiliar:
ANLISIS DE SISTEMAS
2do. Final
Carmen N. Martnez W.
Lilian Riveros
Asignatura:
Seccin
Nombre Alumno
BASE DE DATOS II
J
FECHA
17-Dic-2011
PUNTAJE
Tema 1
Tema 2
Tema 3
Tema 4 (opcional)
TOTAL
50
25
25
100
Carrera
Examen
Profesor
Auxiliar:
ANLISIS DE SISTEMAS
2do. Final
Carmen N. Martnez W.
Lilian Riveros
Asignatura:
Seccin
Nombre Alumno
BASE DE DATOS II
J
FECHA
17-Dic-2011
PUNTAJE
Tema 1
Tema 2
Tema 3
Tema 4 (opcional)
TOTAL
END LOOP;
COMMIT;
END;
END;
Tema 2: (25P)
Cree el o los triggers necesarios sobre la tabla CREDITOS que
No permita INSERTAR un crdito si no se cumple lo siguiente:
Los ingresos totales los gastos totales deben superar en al menos 50% la Cuota Promedio [cuota promedio = (Monto
+ monto * tasa calculada) /plazo_meses]
La suma de la totalidad de sus bienes (inmuebles y rodados) deber superar en al menos 20% al monto del prstamo.
La tasa del prstamo no puede variar ms all del 10% con respecto a la tasa de referencia.
Cuando se actualiza el ESTADO a C (cancelado), se verifica que todas las cuotas tengan fecha de
50
25
25
100
Carrera
Examen
Profesor
Auxiliar:
ANLISIS DE SISTEMAS
2do. Final
Carmen N. Martnez W.
Lilian Riveros
Asignatura:
Seccin
Nombre Alumno
BASE DE DATOS II
J
FECHA
17-Dic-2011
PUNTAJE
Tema 1
Tema 2
Tema 3
Tema 4 (opcional)
TOTAL
END IF;
Verifica tasa
BEGIN
SELECT TASA_REFERENCIA INTO V_TASA
FROM
TIPO_CREDITO
WHERE ID = :NEW.ID_TIPO_CREDITO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000,'Error al recuperar tasa');
END;
IF (:NEW.TASA > V_TASA *(1.10)) OR (:NEW.TASA < V_TASA * (0.9)) THEN
RAISE_APPLICATION_ERROR(-20000,'Tasa no est en el rango de referencia');
END IF;
ELSIF
UPDATING THEN
IF :NEW.ESTADO = 'P' THEN
SELECT COUNT(NRO_CUOTA) INTO V_CUOTAS
FROM CUOTAS
WHERE ID_CREDITO = :NEW.ID
AND
FECHA_PAGO IS NULL;
END IF;
IF V_CUOTAS > 0 THEN
RAISE_APPLICATION_ERROR(-20000,'Aun no se pagaron todas las cuotas');
END IF;
END IF;
--
END;
Tema 3: (25P)
Por la reconversin monetaria, todos los campos MONTO% y TASA% debern tener posiciones decimales. Cree un
procedimiento que verifique todas las tablas que tengan columnas denominadas de esta manera. El procedimiento deber recorrer
dinmicamente estas tablas y deber alterar dinmicamente dichas columnas agregndole a la precisin 2 posiciones decimales.
Deber adems determinar que esos campos tengan valor por default 0.
DECLARE
CURSOR C_COLUMN IS
SELECT TABLE_NAME, COLUMN_NAME, DATA_PRECISION
FROM
USER_TAB_COLUMNS
WHERE (COLUMN_NAME LIKE 'TASA%' OR
COLUMN_NAME LIKE 'MONTO%');
V_SENTENCIA VARCHAR2(1000);
BEGIN
FOR REG IN C_COLUMN LOOP
V_SENTENCIA := 'ALTER TABLE '|| REG.TABLE_NAME|| ' MODIFY '||
REG.COLUMN_NAME || '
NUMBER('|| REG.DATA_PRECISION || ',2) DEFAULT 0';
DBMS_OUTPUT.PUT_LINE(V_SENTENCIA);
EXECUTE IMMEDIATE V_SENTENCIA;
END LOOP;
END;
50
25
25
100
Carrera
Examen
Profesor
Auxiliar:
ANLISIS DE SISTEMAS
2do. Final
Carmen N. Martnez W.
Lilian Riveros
Asignatura:
Seccin
Nombre Alumno
BASE DE DATOS II
J
FECHA
17-Dic-2011
PUNTAJE
Tema 1
Tema 2
Tema 3
Tema 4 (opcional)
TOTAL
C.FECHA_CREDITO,IG.INGRESOS_GASTOS, MI.MONTO_INMUEBLES,
CUO.CUOTAS_PAGADAS, CUO.CUOTAS_PENDIENTES
FROM CREDITOS C, CLIENTES CL, (SELECT ID_SOCIO,
SUM(DECODE(INGRESO_GASTO,'I',MONTO,MONTO*(-1))) INGRESOS_GASTOS
FROM INGRESOS_GASTOS
GROUP BY ID_SOCIO) IG,
(SELECT ID_SOCIO, SUM(MONTO_VALOR_FISCAL) MONTO_INMUEBLES
FROM INMUEBLES
GROUP BY ID_SOCIO) MI,
(SELECT
ID_CREDITO,
SUM(DECODE(FECHA_PAGO, NULL, MONTO_CUOTA + MORA_CALCULADA,0)) CUOTAS_PAGADAS,
SUM(DECODE(FECHA_PAGO, NULL, 0, MONTO_CUOTA + MORA_CALCULADA)) CUOTAS_PENDIENTES
FROM CUOTAS
GROUP BY ID_CREDITO) CUO
WHERE
C.ID_SOCIO = CL.ID
AND
IG.ID_SOCIO = CL.ID
AND
MI.ID_SOCIO = CL.ID
AND
CUO.ID_CREDITO = C.ID;
50
25
25
100