Je hebt een geboortedatum. U moet dus vaststellen dat de DoB ten minste zestien jaar voor vandaag ligt. Er zijn verschillende manieren om dit te doen; hier is er een die een letterlijke interval gebruikt.
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;
Deze trigger controleert ook op updates, om te voorkomen dat latere wijzigingen een leerling ongeldig maken.
De triggernaam students_biur
is slechts een conventie die ik gebruik:de tabelnaam met een achtervoegsel dat *B*efore *I*nsert *U*pdate voor elke *R*ow aangeeft.
RAISE_APPLICATION_ERROR is een standaardprocedure voor het weggooien van door de gebruiker gedefinieerde uitzonderingen met een bericht. Meer te weten komen.
Oracle reserveert het bereik -20999 tot -20000 voor door de gebruiker gedefinieerde fouten; elk ander nummer kan botsen met een door Oracle gedefinieerde uitzondering.