oracle触发器实现emp表中DEPTNO为10的SAL和不超过5000,DEPTNO为20的SAL和不超过8000,DEPTNO为30的SAL和不超过20000,DEPTNO为40的SAL和不超过50000的代码
时间: 2024-02-27 12:56:33 浏览: 85
下面是实现emp表中DEPTNO为10的SAL和不超过5000,DEPTNO为20的SAL和不超过8000,DEPTNO为30的SAL和不超过20000,DEPTNO为40的SAL和不超过50000的Oracle触发器代码:
```sql
CREATE OR REPLACE TRIGGER emp_trigger
BEFORE INSERT OR UPDATE ON emp
FOR EACH ROW
BEGIN
IF :NEW.DEPTNO = 10 AND :NEW.SAL > 5000 THEN
RAISE_APPLICATION_ERROR(-20001, 'DEPTNO为10的员工薪资不能超过5000!');
END IF;
IF :NEW.DEPTNO = 20 AND :NEW.SAL > 8000 THEN
RAISE_APPLICATION_ERROR(-20002, 'DEPTNO为20的员工薪资不能超过8000!');
END IF;
IF :NEW.DEPTNO = 30 AND :NEW.SAL > 20000 THEN
RAISE_APPLICATION_ERROR(-20003, 'DEPTNO为30的员工薪资不能超过20000!');
END IF;
IF :NEW.DEPTNO = 40 AND :NEW.SAL > 50000 THEN
RAISE_APPLICATION_ERROR(-20004, 'DEPTNO为40的员工薪资不能超过50000!');
END IF;
END;
/
```
该触发器在每次向emp表中插入或更新数据时,会先判断该数据是否符合要求,如果不符合则会抛出异常并提示错误信息。
阅读全文