Oracle
 sql >> Database >  >> RDS >> Oracle

Esempio di clausola di Oracle Trigger QUANDO

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