Boa tarde,
Estou tentando criar uma trigger para quando um aluno vai se inscrever em determinada matéria validar se ele passou ou não na matéria que é pré requisito.
Eu consegui fazer a validação se eu reprovei apontar um erro. Mas o problema é se o aluno refez a matéria e passou, eu não consigo completar a inscrição.
Por favor se alguém poder me ajudar.
Segue código onde está dando erro
BEGIN
FOR AUX IN testa_prereq LOOP
v_CD_materia := AUX.CD_MATERIA_PRE_REQUISITO;
for HIST IN TESTA_INSC LOOP
if hist.VL_GRAU_FINAL in (‘A’,’B’,’C’,’CC’)
then DBMS_OUTPUT.PUT_LINE (‘INSCRIÇÃO REALIZADA COM SUCESSO’)
elseIF hist.VL_GRAU_FINAL NOT in (‘A’,’B’,’C’,’CC’)
then RAISE_APPLICATION_ERROR (-20101, ‘ALUNO ‘ || TO_CHAR(:new.ID_MATRICULA) || ‘ NÃO POSSUI A MATÉRIA ‘ || AUX.CD_MATERIA_PRE_REQUISITO || ‘ QUE É PRÉ-REQUISITO DA MATÉRIA ‘ || :new.cd_materia)
END IF;
end loop;
end loop;
Desde já agradeço.