Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2012, 06:03
aneixons
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
tabla mutante y bloque anonimo

Hola gente, estos dos ejercicios me salieron en un examen y el profesor no los llegó a corregir. Tengo la recuperacion en una semana y me gustaria saber como se hacian. Me podeis ayudar porfavor? Gracias de antemano a todos

De la siguiente base de datos:

TITULACION(CODTITU, NOMTITU)
ALUMNO(DNI, NOMBRE, APELLIDOS, DIRECCIÓN, TELEFONO, FECHANAC)
EXPEDIENTE(DNI,CURSOACAD,CODASIG,CODGRUPO,CONVOCAT ORIA, NOTA)
ASIGNATURA(CODASIG, NOMBRE, CURSO, CODTITU)
GRUPO (CODGRUPO, CODASIG,CAPACIDAD)

Primer ejercicio:
Crear un bloque anonimo que cargue y liste por pantalla una tabla plsql con la siguiente informacio:
Codigo asignatura, nombre asignatura, convocatoria, nota del alumno con dni 47123456Z del curso actual 11-12(consideralo texto). La funcion para imprimir por pantalla es dbms_output.put_line

Segundo ejercicio:
El siguiente trigger da un error de tabla mutante. Hacer el codigo necessario para que funcione correctamente.

create or replace trigger consulta_grup
before insert or update of codgrupo on expediente
for each row
declare
v_matriculats number(3);
v_capacitat grupo.capacidad%type;
begin
select count(*)
into v_matriculats
from expediente
where codasig=:new.codasig and codgrupo=:new.codgrupo and cursoacad=:new. cursoacad;
select capacidad
into v_capacidad
from grupo
where codgrupo=:new.codgrupo and codasig=:new.codasig;
if v_capacitat = v_matriculats then
raise_application_error(-20453,'Error: aquest grup ja no admet més alumnes');
end if;
end;