Tienes una fecha de nacimiento. Por lo tanto, debe determinar que el DoB es al menos dieciséis años antes de hoy. Hay varias maneras diferentes de hacer esto; aquí hay uno que usa un 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;
Este disparador también busca actualizaciones, para evitar cambios posteriores que invaliden a un estudiante.
El nombre desencadenante students_biur
es solo una convención que uso:el nombre de la tabla con un sufijo que indica *B*antes de *I*nsert *Update* para cada *R*ow.
RAISE_APPLICATION_ERROR es un procedimiento estándar para generar excepciones definidas por el usuario con un mensaje. Saber más.
Oracle reserva el rango de -20999 a -20000 para errores definidos por el usuario; cualquier otro número puede entrar en conflicto con una excepción definida por Oracle.