In questo articolo imparerai come utilizzare la clausola WHEN nel trigger Oracle per fare in modo che il trigger si attivi nella condizione specificata. Di seguito è riportato un esempio.
Puoi testare questo esempio di trigger creando la tabella seguente e il trigger nello schema del database Oracle.
Crea tabella
CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10 BYTE), JOB VARCHAR2(9 BYTE), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) ) /
Crea un trigger di database Oracle con la clausola WHEN
Il seguente trigger si attiverà solo quando il LAVORO è uguale a IMPIEGATO , e se lo è, imposterà la colonna COMM (commissione) su 0.
CREATE OR REPLACE TRIGGER emp_trig_1 BEFORE INSERT ON EMP FOR EACH ROW WHEN (NEW.job = 'CLERK') BEGIN :NEW.comm := 0; END; /
Test
La seguente dichiarazione di inserimento per la tabella EMP tenterà di inserire un record per CLERK con commissione 300.
SET DEFINE OFF; Insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) Values (7499, 'ALLEN', 'CLERK', 7698, TO_DATE('02/20/1981 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1600, 300, 30); COMMIT;
Interroga la tabella
Ora interroga la tabella EMP per il record sopra inserito e scoprirai che il valore della colonna COMM è 0 .
SELECT * FROM EMP WHERE EMPNO = 7499;
Vedi anche:
- Scopri come creare un trigger in Oracle SQL Developer
- Crea trigger nell'esempio di Oracle Forms