Sie haben ein Geburtsdatum. Sie müssen also feststellen, dass das Geburtsdatum mindestens sechzehn Jahre vor dem heutigen Tag liegt. Es gibt verschiedene Möglichkeiten, dies zu tun; Hier ist eines, das ein Intervallliteral verwendet.
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;
Dieser Auslöser sucht auch nach Aktualisierungen, um zu verhindern, dass nachfolgende Änderungen einen Schüler ungültig machen.
Der Auslösername students_biur
ist nur eine Konvention, die ich verwende:der Tabellenname mit einem Suffix, das *B*bevor *I*nsert *U*pdate for every *R*ow.
RAISE_APPLICATION_ERROR ist eine Standardprozedur zum Auslösen benutzerdefinierter Ausnahmen mit einer Nachricht. Finde mehr heraus.
Oracle reserviert den Bereich -20999 bis -20000 für benutzerdefinierte Fehler; jede andere Zahl kann mit einer von Orakel definierten Ausnahme kollidieren.