Dans cet article, vous apprendrez à utiliser la clause WHEN dans le déclencheur Oracle pour que le déclencheur se déclenche dans la condition spécifiée. Ci-dessous un exemple.
Vous pouvez tester cet exemple de déclencheur en créant la table et le déclencheur suivants dans votre schéma de base de données Oracle.
Créer un tableau
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) ) /
Créer un déclencheur de base de données Oracle avec la clause WHEN
Le déclencheur suivant ne se déclenchera que lorsque le JOB est égal à CLERK , et si c'est le cas, il mettra la colonne COMM (commission) à 0.
CREATE OR REPLACE TRIGGER emp_trig_1 BEFORE INSERT ON EMP FOR EACH ROW WHEN (NEW.job = 'CLERK') BEGIN :NEW.comm := 0; END; /
Tester
L'instruction d'insertion ci-dessous pour la table EMP tentera d'insérer un enregistrement pour CLERK avec une commission de 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;
Interroger la table
Maintenant, interrogez la table EMP pour l'enregistrement inséré ci-dessus, et vous constaterez que la valeur de la colonne COMM est 0 .
SELECT * FROM EMP WHERE EMPNO = 7499;
Voir aussi :
- Apprenez à créer un déclencheur dans Oracle SQL Developer
- Créer des déclencheurs dans l'exemple d'Oracle Forms