In dit artikel leert u hoe u de WHEN-clausule in Oracle-trigger kunt gebruiken om de trigger te activeren op de opgegeven voorwaarde. Hieronder is een voorbeeld.
U kunt dit triggervoorbeeld testen door de volgende tabel en trigger in uw Oracle-databaseschema te maken.
Tabel maken
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) ) /
Maak een Oracle Database-trigger met WHEN-clausule
De volgende trigger wordt alleen geactiveerd als de JOB gelijk is aan CLERK , en als dat zo is, wordt de COMM-kolom (commissie) op 0 gezet.
CREATE OR REPLACE TRIGGER emp_trig_1 BEFORE INSERT ON EMP FOR EACH ROW WHEN (NEW.job = 'CLERK') BEGIN :NEW.comm := 0; END; /
Test
De onderstaande insert-instructie voor EMP-tabel zal proberen een record in te voegen voor CLERK met commissie 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;
De tabel doorzoeken
Zoek nu in de EMP-tabel voor het hierboven ingevoegde record en u zult zien dat de COMM-kolomwaarde 0 is .
SELECT * FROM EMP WHERE EMPNO = 7499;
Zie ook:
- Meer informatie over het maken van een trigger in Oracle SQL Developer
- Maak triggers in Oracle Forms-voorbeeld