sql 触发器的时间限制

Time constraint on a sql trigger

我有以下 table 称为 employees

create table employees 
(
   eno      number(4) not null primary key, 
   ename    varchar2(30),
   zip      number(5) references zipcodes,
   hdate    date
);

我正在尝试在 table 上设置一个触发器,该触发器将在 update or delete 之前触发,该触发器将首先检查系统时间以查看时间是否在 12:00 之间-13:00,如果是则允许插入,否则禁止插入。

到目前为止我的猜测是:

CREATE or REPLACE TRIGGER twelve_one 
BEFORE INSERT or Update ON employees
BEGIN
 IF
  ....
 ELSE
  ....
END;

但不幸的是,这就是我进入的程度。有人可以帮我先找回系统时间吗?那么我该如何设置那个 IF ELSE 块呢?最后如何中止 transaction/insertion/update? 我正在使用 Oracle SQL Developer 4.02.15 非常感谢

我假设你现在必须声明临时变量来设置时间,然后比较临时变量。

CREATE OR REPLACE TRIGGER TWELVE_ONE
BEFORE INSERT OR UPDATE
ON EMPLOYEES
FOR EACH ROW
DECLARE
      V_DATE   VARCHAR2 (10);
BEGIN
          SELECT TO_CHAR (SYSDATE, 'hh24:mi:ss') INTO V_DATE FROM DUAL;
      IF (V_DATE >= '12:00:01' AND V_DATE < '13:00:00')
          THEN
              INSERT INTO TABLE .. 
           ELSE
              UPDATE TABLE...
      END IF;
END;