Ir para conteúdo
Fórum Script Brasil

A_PASSOS

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre A_PASSOS

A_PASSOS's Achievements

0

Reputação

  1. 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.
×
×
  • Criar Novo...