sql >> Databáze >  >> RDS >> Oracle

Příklad klauzule Oracle Trigger WHEN

V tomto článku se dozvíte, jak použít klauzuli WHEN ve spouštěči Oracle, aby se spouštěč spustil při zadané podmínce. Níže je uveden příklad.

Tento příklad spouštěče můžete otestovat vytvořením následující tabulky a spouštěče ve schématu databáze Oracle.

Vytvořit tabulku

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

Vytvořte spouštěč databáze Oracle pomocí doložky WHEN

Následující spouštěč se spustí pouze v případě, že JOB se rovná CLERK a pokud ano, nastaví sloupec COMM (provize) na 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

Níže uvedený příkaz vložení pro tabulku EMP se pokusí vložit záznam pro CLERK s provizí 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;

Dotaz na tabulku

Nyní vyhledejte v tabulce EMP výše vložený záznam a zjistíte, že hodnota sloupce COMM je 0 .

SELECT *
FROM EMP
WHERE EMPNO = 7499;

Viz také:

  • Přečtěte si, jak vytvořit spouštěč v Oracle SQL Developer
  • Vytvoření spouštěčů v příkladu Oracle Forms
  1. Připojte se ke vzdálené databázi PostgreSql pomocí Powershell

  2. Proaktivní kontroly stavu serveru SQL, část 2:Údržba

  3. Získejte aktuální hodnotu AUTO_INCREMENT pro libovolnou tabulku

  4. Použití Oracle JDeveloper 12c s databází Oracle, část 2