Upload
carlos-cabezas
View
394
Download
8
Embed Size (px)
Citation preview
7/22/2019 Examen Final BD Resuelto
1/4
1. El atributo que permite conocer el tipo de una variable, constante o campo de la basede datos:
A. %TYPE B. %ROWTYPEC. &
D. %COLUMN
2. Los bloques PL/SQL presentan una estructura especfica compuesta de tres partesbien diferenciadas:
A. Seccin Declarativa, de Ejecucin, y de Excepciones B. Seccin Inicio(BEGIN), Procedural y Fin(END).C. Seccin de Librerias, Declarativa y de Ejecucin.D. N.A.
3. Es incorrecto afirma con respecto al concepto de PROCEDIMIENTO:A. El uso de OR REPLACE permite sobreescribir un procedimiento existenteB. La sintaxis es muy parecida a la de un bloque annimo, se usa la palabra
reservada PROCEDURE ... IS en la especificacin del procedimientoC. Los parmetros pueden ser de entrada (IN), de salida (OUT) o de entrada
salida (IN OUT)
D. Subprograma que devuelve un valor. E. Todas las anteriores.
4. Excepcin que se disparan automticamente al producirse error de lectura de registros:
A. too_many_rows B. no_data_founded:C. too_many_dataD. login_failedE. N.A.
5. Un trigger es un bloque PL/SQL asociado a una tabla, que se ejecuta comoconsecuencia de una determinada instruccin SQL. Cul de las instruccionesenumeradas no corresponde para el uso de Trigger.
A. INSERTB. UPDATEC. DELETE
D. DROP E. N.A.
6. Es un rea compartida por todos los procesos de servidor y procesos de segundoplano.
A. SGA B. PGAC. InstanceD. SMONE. PMON
7. Una base de datos se divide en unidades lgicas de almacenamiento denominadas:A. ControlFiles
B. Tablespaces C. SegmentosD. ExtensionesE. DataFiles
7/22/2019 Examen Final BD Resuelto
2/4
8. Por ello dado que normalmente las consulta pueden devolver varias filas estas sesuelen manejar mejor haciendo uso del concepto :
A. ExpcetionB. ProcedimientoC. Funcin
D. Cursores E. N .A
9. El cdigo contenido en un disparador, denominado cuerpo del disparador, est formadopor bloques
A. FuncinB. Cursor
C. PL/SQL D. ProcedimientoE. N.A
10. Se crea cuando la instancia es levantada (startup) y se borra cuando sta se deja deusar (shutdown), indicar el rea de memoria :
A. SGA B. PGA
C. JGAD. GSAE. N.A
7/22/2019 Examen Final BD Resuelto
3/4
Se tiene las siguiente tablas:
1. Crear un cursor que muestre la relacin de cursos y notas obtenidas por curso (Cdigoalumno, Nombre, Apellidos, Curso, Nota Parcial, Practicas, Nota Final y Promedio
Final). Ingresar como parmetro el cdigo del alumno. En caso de no encontrar
registros, indicar que el alumno no existe.
DECLARE CURSOR c_cursos(cod_alumno IN varchar2)IS
SELECT a.codigoalumno, a.nombre, a.apellidos, c.curso, n.notaparcial,n.notapracticas, n.notafinal, n.promediofinal
FROM alumnos a inner join notas non a.codigoalumno = n.codigoalumno inner join cursos con c.codigocurso = n.codigocurso
where a.codigoalumno = cod_alumno;
ccurs_registro c_cursos%ROWTYPE;
BEGINDBMS_OUTPUT.PUT_LINE('Relacin de cursos con notas ' ||
ccurs_registro.curso);FOR ccurs_registro IN c_cursos(&cod_alumno)LOOP
DBMS_OUTPUT.PUT_LINE (ccurs_registro.codigoalumno || ' ' ||ccurs_registro.nombre || ' ' ||ccurs_registro.curso || ' ' ||
ccurs_registro.notaparcial || ' ' ||ccurs_registro.notafinal || ' ' ||ccurs_registro.promediofinal);
END LOOP;EXCEPTIONWHEN NO_DATA_FOUND THEN
dbms_output.put_line('El alumno no existe');END;
ALUMNOS
CodigoAlumno Texto
Nombre Texto
Apellidos Texto
CURSOS
CodigoCurso Texto
Curso Texto
NOTAS
CodigoAlumno Texto
CodigoCurso Texto
NotaParcial Numerico
NotaPracticas Numerico
NotaFinal Numerico
PromedioFinal Numerico
7/22/2019 Examen Final BD Resuelto
4/4
2. Se tiene 3 tablas (Persona, Masculino, Femenino) con la misma estructura siguiente :DNI char(8)Nombre char(20)Sexo char(1) ( F femenino o Masculino )Edad Number(2)
Realizar un trigger de tal manera que al insertar si es masculino se guarda en la tabla
masculino caso contrario se guarda en la tabla femenino. Poner una excepcin altrigger que no permita grabar aquellos que tengan edad mayores de
60 aos.
CREATE OR REPLACE TRIGGER COPIA_GENERO
BEFORE INSERT ON PERSONA
FOR EACH ROW
BEGIN
IF (INSERTING AND :new.edad>=60) THEN
RAISE_APPLICATION_ERROR(-20001,'Err. Ingreso no
permitido');
ELSIF (INSERTING AND :new.sexo='f') THEN
INSERT INTO FEMENINO VALUES(:new.dni,:new.nombre,
:new.sexo,
:new.edad);
ELSIF (INSERTING AND :new.sexo='m') THEN
INSERT INTO MASCULINO
VALUES(:new.dni,:new.nombre,
:new.sexo,
:new.edad);
END IF;
END;