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