I denne artikel vil du lære, hvordan du bruger WHEN-klausulen i Oracle-udløseren til at få udløseren til at aktivere den angivne tilstand. Nedenfor er et eksempel.
Du kan teste dette triggereksempel ved at oprette følgende tabel og trigger i dit Oracle-databaseskema.
Opret tabel
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) ) /
Opret en Oracle-databaseudløser med WHEN-klausul
Den følgende udløser udløses kun, når JOBBET er lig med CLERK , og hvis det er, så vil det sætte COMM-kolonnen (kommission) til 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
Nedenstående indsættelseserklæring for EMP-tabellen vil forsøge at indsætte en post for CLERK med provision 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;
Forespørg i tabellen
Forespørg nu i EMP-tabellen for den ovenstående indsatte post, og du vil opdage, at COMM-kolonnens værdi er 0 .
SELECT * FROM EMP WHERE EMPNO = 7499;
Se også:
- Lær hvordan du opretter en trigger i Oracle SQL Developer
- Opret triggere i Oracle Forms-eksempel