Vous avez une date de naissance. Vous devez donc déterminer que le DoB est au moins seize ans avant aujourd'hui. Il existe différentes manières de procéder; en voici une utilisant un littéral d'intervalle.
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;
Ce déclencheur vérifie également les mises à jour, pour éviter que des modifications ultérieures n'invalident un étudiant.
Le nom du déclencheur students_biur
est juste une convention que j'utilise :le nom de la table avec un suffixe indiquant *B*avant *I*nsert *U*pdate pour chaque *R*ow.
RAISE_APPLICATION_ERROR est une procédure standard pour lancer des exceptions définies par l'utilisateur avec un message. En savoir plus.
Oracle réserve la plage -20999 à -20000 pour les erreurs définies par l'utilisateur; tout autre numéro peut entrer en conflit avec une exception définie par Oracle.