Du har en fødselsdato. Så du skal fastslå, at DoB er mindst seksten år før i dag. Der er forskellige måder at gøre dette på; her er en, der bruger et interval-literal.
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;
Denne trigger søger også efter opdateringer for at forhindre, at efterfølgende ændringer gør en elev ugyldig.
Udløsernavnet students_biur
er bare en konvention, jeg bruger:tabelnavnet med et suffiks, der angiver *B*før *I*indsætter *U*opdatering for hver *R*ow.
RAISE_APPLICATION_ERROR er en standardprocedure til at sende brugerdefinerede undtagelser med en besked. Find ud af mere.
Oracle forbeholder sig området -20999 til -20000 for brugerdefinerede fejl; ethvert andet tal kan kollidere med en orakel-defineret undtagelse.