Oracle
 sql >> Base de données >  >> RDS >> Oracle

Exemple de clause Oracle Trigger WHEN

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