Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Exemplo de cláusula WHEN do Oracle Trigger


Neste artigo, você aprenderá como usar a cláusula WHEN no gatilho Oracle para fazer o gatilho disparar na condição especificada. Abaixo está um exemplo.

Você pode testar este exemplo de gatilho criando a tabela e o gatilho a seguir em seu esquema de banco de dados Oracle.

Criar tabela

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

Criar um gatilho de banco de dados Oracle com a cláusula WHEN


O acionador a seguir será acionado somente quando o JOB for igual a CLERK , e se for, então ele irá definir a coluna COMM (comissão) para 0.
CREATE OR REPLACE TRIGGER emp_trig_1
BEFORE INSERT
ON EMP
FOR EACH ROW
WHEN (NEW.job = 'CLERK')
BEGIN
:NEW.comm := 0;
END;
/

Teste


A instrução de inserção abaixo para a tabela EMP tentará inserir um registro para CLERK com comissão 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;

Consulte a Tabela


Agora consulte a tabela EMP para o registro inserido acima e você descobrirá que o valor da coluna COMM é 0 .
SELECT *
FROM EMP
WHERE EMPNO = 7499;

Veja também:

  • Saiba como criar um gatilho no Oracle SQL Developer
  • Criar gatilhos no exemplo do Oracle Forms