Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Przykład klauzuli WHEN wyzwalacza Oracle

W tym artykule dowiesz się, jak używać klauzuli WHEN w wyzwalaczu Oracle, aby wyzwalacz zadziałał w określonym warunku. Poniżej znajduje się przykład.

Możesz przetestować ten przykład wyzwalacza, tworząc poniższą tabelę i wyzwalacz w schemacie bazy danych Oracle.

Utwórz tabelę

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

Utwórz wyzwalacz bazy danych Oracle z klauzulą ​​WHEN

Poniższy wyzwalacz zostanie uruchomiony tylko wtedy, gdy JOB jest równe CLERK , a jeśli tak, to ustawi kolumnę COMM (prowizja) 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

Poniższa instrukcja wstawiania dla tabeli EMP spróbuje wstawić rekord dla CLERK z prowizją 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;

Przeszukaj tabelę

Teraz zapytaj tabelę EMP o wstawiony powyżej rekord, a zobaczysz, że wartość kolumny COMM wynosi 0 .

SELECT *
FROM EMP
WHERE EMPNO = 7499;

Zobacz też:

  • Dowiedz się, jak utworzyć wyzwalacz w Oracle SQL Developer
  • Utwórz wyzwalacze w przykładzie formularzy Oracle
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co zrobić, jeśli podczas korzystania z programu SQL Server z naszym sterownikiem Oracle ODBC pojawi się niepoprawny błąd porządkowy zakładki?

  2. PLSQL :NOWY i :STARY

  3. Czy ktoś mógłby wyjaśnić, co tak naprawdę robi instrukcja MERGE w Oracle?

  4. Wielokrotne przenoszenie danych z SQL Server do Oracle

  5. Proces aktualizacji krok po kroku do wersji R12.2 Aktualizacja, część -3