Jump to content
Fórum Script Brasil
  • 0

[Iniciante] Criação de Trigger - Banco ORACLE


A_PASSOS

Question

Boa tarde.

Estou com um problema na hora de criar uma Trigger para validar se o aluno pode cursar determinada matéria que tem como pré requisito outra.

Estou conseguindo validar quando o Aluno tenta se inscrever na matéria e foi reprovado na que é pre requisito.

Mas quando eu tento validar quando o Aluno tenta se inscrever na matéria e foi aprovado na que é pre requisito na segunda tentativa dá erro.

Já revirei o código inteiro tentando localizar o erro. Creio que seja erro de sintaxe.

Tentei usar o IF, compilou mas não fez a validação que eu quero. Daí fui pro CASE compilou mas também não fez a validação que eu quero.

Segue código:

create or replace TRIGGER "VALIDA_INSCRICAO"

BEFORE INSERT ON ALUNO_INSCRICAO_MATERIA

REFERENCING NEW AS NEW

FOR EACH ROW

DECLARE

v_CD_materia char(6);

CURSOR TESTA_INSC IS

SELECT H.ID_MATRICULA, H.CD_MATERIA, H.VL_GRAU_FINAL

FROM HISTORICO H

where H.ID_MATRICULA = :new.ID_MATRICULA

AND CD_MATERIA = v_CD_materia;

CURSOR TESTA_PREREQ IS

SELECT pr.CD_MATERIA_pre_requisito

FROM PRE_REQUISITO PR

where cd_materia = :new.cd_materia;

BEGIN

FOR AUX IN testa_prereq LOOP

v_CD_materia := AUX.CD_MATERIA_PRE_REQUISITO;

for HIST IN TESTA_INSC LOOP

case

when hist.VL_GRAU_FINAL in ('A','B','C','CC') then Dbms_output.put_line ('INSCRIÇÃO REALIZADA COM SUCESSO');

else 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 case;

end loop;

end loop;

END;

Desde já agradeço.

Tenham uma boa noite.

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...