Ir para conteúdo
Fórum Script Brasil
  • 0

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


A_PASSOS

Pergunta

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 para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...