Bạn có Ngày sinh. Vì vậy, bạn cần xác định rằng DoB ít nhất là mười sáu năm trước ngày nay. Có nhiều cách khác nhau để làm điều này; đây là một trong những sử dụng một ký tự khoảng thời gian.
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;
Trình kích hoạt này cũng kiểm tra các bản cập nhật, để ngăn những thay đổi tiếp theo làm mất hiệu lực của học sinh.
Tên trình kích hoạt students_biur
chỉ là một quy ước tôi sử dụng:tên bảng với hậu tố chỉ ra * B * efore * I * nsert * U * pdate cho mỗi * R * ow.
RAISE_APPLICATION_ERROR là một thủ tục tiêu chuẩn để đưa ra các ngoại lệ do người dùng xác định với một thông báo. Tìm hiểu thêm.
Oracle bảo lưu phạm vi -20999 đến -20000 cho các lỗi do người dùng xác định; bất kỳ số nào khác có thể xung đột với một ngoại lệ do oracle xác định.