Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Trigger WHEN-Klausel Beispiel

In diesem Artikel erfahren Sie, wie Sie die WHEN-Klausel im Oracle-Trigger verwenden, um den Trigger bei der angegebenen Bedingung auszulösen. Unten ist ein Beispiel.

Sie können dieses Trigger-Beispiel testen, indem Sie die folgende Tabelle erstellen und in Ihrem Oracle-Datenbankschema auslösen.

Tabelle erstellen

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)
)
/

Erstellen Sie einen Oracle-Datenbank-Trigger mit WHEN-Klausel

Der folgende Trigger wird nur ausgelöst, wenn JOB gleich CLERK ist , und wenn ja, wird die COMM-Spalte (Kommission) auf 0 gesetzt.

CREATE OR REPLACE TRIGGER emp_trig_1
BEFORE INSERT
ON EMP
FOR EACH ROW
WHEN (NEW.job = 'CLERK')
BEGIN
:NEW.comm := 0;
END;
/

Test

Die folgende Einfügeanweisung für die EMP-Tabelle versucht, einen Datensatz für CLERK mit der Provision 300 einzufügen.

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;

Tabelle abfragen

Fragen Sie nun die EMP-Tabelle nach dem oben eingefügten Datensatz ab, und Sie werden feststellen, dass der COMM-Spaltenwert 0 ist .

SELECT *
FROM EMP
WHERE EMPNO = 7499;

Siehe auch:

  • Erfahren Sie, wie Sie einen Trigger in Oracle SQL Developer erstellen
  • Beispiel zum Erstellen von Triggern in Oracle Forms