--在EMPLOYEES表上创建语句级别的触发器, --当用户在周一至周五8:00点至17:00以外插入数据时,系统提示‘只是在工作期间可以录入数据’。 --当用户在周一至周五8:00点至17:00点以外修改数据时,系统提示‘只是在工作期间可以修改数据’。 --当用户在周一至周五8:00点至17:00点以外删除数据时,系统提示‘只是在工作期间可以删除数据’。
时间: 2024-01-21 17:18:21 浏览: 26
以下是在Oracle数据库中创建符合要求的触发器的SQL语句:
```
CREATE OR REPLACE TRIGGER TRG_EMPLOYEES_WORKTIME
BEFORE INSERT OR UPDATE OR DELETE ON EMPLOYEES
FOR EACH ROW
DECLARE
v_day VARCHAR2(10);
v_time VARCHAR2(8);
BEGIN
v_day := TO_CHAR(SYSDATE, 'DY');
v_time := TO_CHAR(SYSDATE, 'HH24:MI:SS');
IF (v_day NOT IN ('SAT', 'SUN')) THEN
IF (v_time < '08:00:00' OR v_time > '17:00:00') THEN
IF (INSERTING) THEN
RAISE_APPLICATION_ERROR(-20001, '只是在工作期间可以录入数据');
ELSIF (UPDATING) THEN
RAISE_APPLICATION_ERROR(-20002, '只是在工作期间可以修改数据');
ELSE
RAISE_APPLICATION_ERROR(-20003, '只是在工作期间可以删除数据');
END IF;
END IF;
END IF;
END;
/
```
该触发器会在插入、更新或删除EMPLOYEES表中的数据时执行。对于每一行数据,它会获取当前时间,判断当前日期是否为周一至周五,以及当前时间是否在8:00到17:00之间。如果不满足这些条件,则会根据操作类型(插入、更新或删除)抛出相应的异常提示。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)