Masz datę urodzenia. Musisz więc ustalić, że data DoB jest co najmniej szesnaście lat przed dniem dzisiejszym. Można to zrobić na wiele różnych sposobów; tutaj jest jeden używający literału interwałowego.
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;
Ten wyzwalacz sprawdza również dostępność aktualizacji, aby zapobiec kolejnym zmianom unieważniającym ucznia.
Nazwa wyzwalacza students_biur
to tylko konwencja, której używam:nazwa tabeli z przyrostkiem wskazującym *B*przed *I*wstaw *U*pdate dla każdego *R*ow.
RAISE_APPLICATION_ERROR to standardowa procedura zgłaszania wyjątków zdefiniowanych przez użytkownika za pomocą komunikatu. Dowiedz się więcej.
Oracle rezerwuje zakres od -20999 do -20000 dla błędów zdefiniowanych przez użytkownika; każda inna liczba może kolidować z wyjątkiem określonym przez wyrocznię.