You are on page 1of 4

1. El atributo que permite conocer el tipo de una variable, constante o campo de la base de datos: A. %TYPE B. %ROWTYPE C. & D.

. %COLUMN 2. Los bloques PL/SQL presentan una estructura especfica compuesta de tres partes bien 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 existente B. La sintaxis es muy parecida a la de un bloque annimo, se usa la palabra reservada PROCEDURE ... IS en la especificacin del procedimiento C. 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_data D. login_failed E. N.A. 5. Un trigger es un bloque PL/SQL asociado a una tabla, que se ejecuta como consecuencia de una determinada instruccin SQL. Cul de las instrucciones enumeradas no corresponde para el uso de Trigger. A. INSERT B. UPDATE C. DELETE D. DROP E. N.A.

6. Es un rea compartida por todos los procesos de servidor y procesos de segundo plano. A. SGA B. PGA C. Instance D. SMON E. PMON 7. Una base de datos se divide en unidades lgicas de almacenamiento denominadas: A. ControlFiles B. Tablespaces C. Segmentos D. Extensiones E. DataFiles

8. Por ello dado que normalmente las consulta pueden devolver varias filas estas se suelen manejar mejor haciendo uso del concepto : A. Expcetion B. Procedimiento C. Funcin D. Cursores E. N .A 9. El cdigo contenido en un disparador, denominado cuerpo del disparador, est formado por bloques A. Funcin B. Cursor C. PL/SQL D. Procedimiento E. N.A 10. Se crea cuando la instancia es levantada (startup) y se borra cuando sta se deja de usar (shutdown), indicar el rea de memoria : A. SGA B. PGA C. JGA D. GSA E. N.A

Se tiene las siguiente tablas:

CURSOS
CodigoCurso Texto Curso Texto

ALUMNOS
CodigoAlumno Texto Nombre Texto Apellidos Texto

NOTAS
CodigoAlumno CodigoCurso NotaParcial NotaPracticas NotaFinal PromedioFinal Texto Texto Numerico Numerico Numerico Numerico

1. Crear un cursor que muestre la relacin de cursos y notas obtenidas por curso (Cdigo alumno, 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 n on a.codigoalumno = n.codigoalumno inner join cursos c on c.codigocurso = n.codigocurso where a.codigoalumno = cod_alumno; ccurs_registro c_cursos%ROWTYPE; BEGIN DBMS_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; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('El alumno no existe'); END;

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 al

trigger 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 VALUES(:new.dni,:new.nombre, :new.edad); END IF; END; INTO MASCULINO :new.sexo,

You might also like