CREATE OR REPLACE TRIGGER Guest_Change_In_WorkingHour
BEFORE INSERT OR UPDATE OR DELETE ON guest
BEGIN
IF TO_NUMBER(TO_CHAR(SYSDATE,'hh24')) < 8 -- cant do anything before 8:00am
OR TO_NUMBER(TO_CHAR(SYSDATE,'hh24')) >= 5
-- changes must be made BEFORE 5:00pm
OR TO_CHAR(SYSDATE,'dy') in ('sun','sat') THEN -- nothing on weekends
RAISE_APPLICATION_ERROR (-20000, 'Satff changes only allowed during business hours.');
END IF;
END;
/
このトリガーは、勤務時間中 (午前 8 時から午後 5 時まで) にデータの挿入、削除、および更新を実行できます。私の問題は、時刻が午前 4 時になっても、データを挿入、削除、および更新できることです。このトリガーは AM と PM を無視することがわかりました。の解き方?