Máte datum narození. Takže musíte určit, že datum narození je minimálně o šestnáct let dříve než dnes. Existují různé způsoby, jak toho dosáhnout; zde je jeden používající intervalový literál.
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;
Tento spouštěč také kontroluje aktualizace, aby se zabránilo následným změnám, které zneplatní studenta.
Název spouštěče students_biur
je pouze konvence, kterou používám:název tabulky s příponou označující *B*efore *I*insert *U*pdate pro každý *R*ow.
RAISE_APPLICATION_ERROR je standardní postup pro vyvolání uživatelem definovaných výjimek se zprávou. Zjistit více.
Oracle si vyhrazuje rozsah -20999 až -20000 pro uživatelem definované chyby; jakékoli jiné číslo může kolidovat s výjimkou definovanou oraclem.