使用触发器检查员工从当前日期起是否超过 18 岁

问题描述 投票:0回答:0

我想确保新员工年满 18 岁,所以我想这样做的方法是使用触发器从当前日期减去员工的出生日期。

这是我的桌子;

CREATE TABLE STAFF (
Staff_ID NUMBER(5),
First_Name VARCHAR2(25) NOT NULL,
Last_Name VARCHAR2(25),
Date_Of_Birth DATE NOT NULL,
Gender VARCHAR2(25),
Email VARCHAR2(25),
Telephone NUMBER(15),
Department VARCHAR2(25),
Staff_Type VARCHAR2(25),
Occupation VARCHAR2(25),
Hire_Date DATE,
Salary NUMBER (10)
);

这是我的插入语句;

INSERT INTO STAFF VALUES (1,'Ukeme', 'Mfon', TO_DATE('1980-12-2', 'yyyy-mm-dd'), 'Male', '[email protected]',7826768732, 'Medical Team','Full-time','Nurse', TO_DATE('2023-02-12', 'yyyy-mm-dd'), 40000, 1);

这是我的触发器;

create or replace trigger dob_check
before insert on Staff
for each row
declare
minimum_age number := 18;
begin
if extract(year from (sysdate - :old.Date_Of_Birth) year to month) < minimum_age
then
raise_application_error (-20000, 'Minimum age is '||minimum_age);
end if;
end;
/
oracle plsql apex plsqldeveloper
© www.soinside.com 2019 - 2024. All rights reserved.