Você tem uma data de nascimento. Então você precisa determinar que o DoB é pelo menos dezesseis anos antes de hoje. Existem várias maneiras diferentes de fazer isso; aqui está um usando um literal de intervalo.
create or replace trigger students_biur
before insert or update on students for each row
begin
if (:new.student_birthdate + INTERVAL '15' YEAR ) < sysdate
then
raise_application_error( -20000, 'This student is too young be registered.');
end if;
end;
Esse acionador também verifica atualizações, para evitar que alterações subsequentes invalidem um aluno.
O nome do gatilho
students_biur
é apenas uma convenção que eu uso:o nome da tabela com um sufixo indicando *B*efore *I*nsert *U*pdate para cada *R*ow. RAISE_APPLICATION_ERROR é um procedimento padrão para lançar exceções definidas pelo usuário com uma mensagem. Descubra mais.
A Oracle reserva o intervalo -20999 a -20000 para erros definidos pelo usuário; qualquer outro número pode colidir com uma exceção definida pelo oráculo.